Skip to content

Commit 5576959

Browse files
committed
67
1 parent 0816093 commit 5576959

File tree

5 files changed

+57
-27
lines changed

5 files changed

+57
-27
lines changed

db.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,6 @@
6464
"subject": "new todo222",
6565
"completed": true,
6666
"id": 21
67-
},
68-
{
69-
"subject": "buy milk",
70-
"completed": false,
71-
"body": "go to supermarket and buy milk",
72-
"id": 22
7367
}
7468
]
7569
}

src/components/DeleteModal.vue

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<template>
2+
<Modal>
3+
<template v-slot:title>
4+
Delete Todo
5+
</template>
6+
<template v-slot:body>
7+
Are you sure you want to delete this todo?
8+
</template>
9+
<template v-slot:footer>
10+
<button
11+
type="button"
12+
class="btn btn-secondary"
13+
@click="onClose"
14+
>
15+
Close
16+
</button>
17+
<button
18+
type="button"
19+
class="btn btn-danger"
20+
@click="onDelete"
21+
>Delete</button>
22+
</template>
23+
</Modal>
24+
</template>
25+
26+
<script>
27+
import Modal from '@/components/Modal.vue';
28+
29+
export default {
30+
components: {
31+
Modal
32+
},
33+
setup(props, { emit }) {
34+
const onClose = () => {
35+
emit('close');
36+
}
37+
38+
const onDelete = () => {
39+
emit('delete');
40+
}
41+
42+
return {
43+
onClose,
44+
onDelete
45+
}
46+
}
47+
}
48+
</script>
49+
50+
<style>
51+
52+
</style>

src/components/Modal.vue

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,17 @@
44
<div class="modal-content">
55
<div class="modal-header">
66
<h5 class="modal-title">
7-
Delete Todo
7+
<slot name="title"></slot>
88
</h5>
99
<button type="button" class="close">
1010
<span @click="onClose">&times;</span>
1111
</button>
1212
</div>
1313
<div class="modal-body">
14-
Are you sure you want to delete the todo?
14+
<slot name="body"></slot>
1515
</div>
1616
<div class="modal-footer">
17-
<button
18-
type="button"
19-
class="btn btn-secondary"
20-
@click="onClose"
21-
>
22-
Close
23-
</button>
24-
<button
25-
type="button"
26-
class="btn btn-danger"
27-
@click="onDelete"
28-
>Delete</button>
17+
<slot name="footer"></slot>
2918
</div>
3019
</div>
3120
</div>
@@ -38,14 +27,9 @@ export default {
3827
const onClose = () => {
3928
emit('close');
4029
}
41-
42-
const onDelete = () => {
43-
emit('delete');
44-
}
4530
4631
return {
4732
onClose,
48-
onDelete
4933
}
5034
}
5135
}

src/components/TodoList.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
<script>
4444
import { useRouter } from 'vue-router';
45-
import Modal from '@/components/Modal.vue';
45+
import Modal from '@/components/DeleteModal.vue';
4646
import { ref } from 'vue';
4747
4848
export default {

src/pages/todos/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<div style="opacity: 0.5">
2+
<div>
33
<div class="d-flex justify-content-between mb-3">
44
<h2>To-Do List</h2>
55
<button

0 commit comments

Comments
 (0)