Skip to content

Commit 85228d1

Browse files
committed
✨ ajout de la suppression des commentaires et des reponses de commentaire
1 parent 1e14511 commit 85228d1

File tree

6 files changed

+37
-17
lines changed

6 files changed

+37
-17
lines changed

app/Http/Controllers/Api/ReplyController.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use App\Models\Reaction;
99
use App\Models\Reply;
1010
use App\Models\User;
11+
use Illuminate\Http\JsonResponse;
1112
use Illuminate\Http\Request;
1213
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
1314
use Illuminate\Support\Facades\Auth;
@@ -44,8 +45,12 @@ public function like(Request $request, int $id): ReplyResource
4445
return new ReplyResource($reply);
4546
}
4647

47-
public function delete()
48+
public function delete(int $id): JsonResponse
4849
{
50+
/** @var Reply $reply */
51+
$reply = Reply::findOrFail($id);
52+
$reply->delete();
4953

54+
return response()->json(['message' => 'Commentaire supprimé avec succès']);
5055
}
5156
}

app/Models/Reply.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,11 @@ public function scopeIsSolution(Builder $builder): Builder
101101
{
102102
return $builder->has('solutionTo');
103103
}
104+
105+
public function delete()
106+
{
107+
$this->deleteReplies();
108+
109+
parent::delete();
110+
}
104111
}

public/css/app.css

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6373,14 +6373,6 @@ select {
63736373
--tw-blur: blur(8px);
63746374
filter: var(--tw-filter);
63756375
}
6376-
.blur-lg {
6377-
--tw-blur: blur(16px);
6378-
filter: var(--tw-filter);
6379-
}
6380-
.blur-md {
6381-
--tw-blur: blur(12px);
6382-
filter: var(--tw-filter);
6383-
}
63846376
.blur-sm {
63856377
--tw-blur: blur(4px);
63866378
filter: var(--tw-filter);

public/js/app.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3396,10 +3396,19 @@ function Comments(_ref) {
33963396
}, []); // On supprime un commentaire
33973397

33983398
const handleDelete = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_2__.useCallback)(async comment => {
3399+
const isReply = comment.model_type === 'reply';
33993400
await (0,_api_comments__WEBPACK_IMPORTED_MODULE_4__.deleteReply)(comment.id);
3400-
setState(s => _objectSpread(_objectSpread({}, s), {}, {
3401-
comments: s.comments.filter(c => c !== comment)
3402-
}));
3401+
3402+
if (isReply) {
3403+
const comments = await (0,_api_comments__WEBPACK_IMPORTED_MODULE_4__.findAllReplies)(target);
3404+
setState(s => _objectSpread(_objectSpread({}, s), {}, {
3405+
comments
3406+
}));
3407+
} else {
3408+
setState(s => _objectSpread(_objectSpread({}, s), {}, {
3409+
comments: s.comments.filter(c => c !== comment)
3410+
}));
3411+
}
34033412
}, []); // On répond à un commentaire
34043413

34053414
const handleReply = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_2__.useCallback)(comment => {

resources/js/components/Comments.jsx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,18 @@ export function Comments ({ target, parent }) {
5858

5959
// On supprime un commentaire
6060
const handleDelete = useCallback(async comment => {
61+
const isReply = comment.model_type === 'reply'
62+
6163
await deleteReply(comment.id)
62-
setState(s => ({
63-
...s,
64-
comments: s.comments.filter(c => c !== comment)
65-
}))
64+
if (isReply) {
65+
const comments = await findAllReplies(target)
66+
setState(s => ({ ...s, comments }))
67+
} else {
68+
setState(s => ({
69+
...s,
70+
comments: s.comments.filter(c => c !== comment)
71+
}))
72+
}
6673
}, [])
6774

6875
// On répond à un commentaire

routes/api.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@
1818
Route::post('replies', [ReplyController::class, 'store']);
1919
Route::put('replies/{id}', [ReplyController::class, 'update']);
2020
Route::post('like/{id}', [ReplyController::class, 'like']);
21-
Route::delete('replies/{id}', [ReplyController::class, 'update']);
21+
Route::delete('replies/{id}', [ReplyController::class, 'delete']);

0 commit comments

Comments
 (0)