Skip to content

Commit 0112a37

Browse files
feat: delete entry
1 parent 6b16ae0 commit 0112a37

File tree

6 files changed

+73
-9
lines changed

6 files changed

+73
-9
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import {deleteAsset, deleteDoc} from '@junobuild/core';
2+
import {addEventClick, reload} from '../utils/utils';
3+
4+
const deleteItem = async (item) => {
5+
try {
6+
const {
7+
data: {url}
8+
} = item;
9+
10+
if (url !== undefined) {
11+
const {pathname: fullPath} = new URL(url);
12+
13+
await deleteAsset({
14+
collection: 'images',
15+
fullPath
16+
});
17+
}
18+
19+
await deleteDoc({
20+
collection: 'notes',
21+
doc: item
22+
});
23+
24+
reload();
25+
} catch (err) {
26+
console.error(err);
27+
}
28+
};
29+
30+
export const renderDelete = ({table, item, index}) => {
31+
addEventClick({
32+
target: table,
33+
selector: `#deleteItem${index}`,
34+
fn: async () => await deleteItem(item)
35+
});
36+
37+
return `<button
38+
id="deleteItem${index}"
39+
role="cell"
40+
class="hover:text-lavender-blue-500 active:text-lavender-blue-400">
41+
<svg width="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29 29" fill="currentColor">
42+
<g>
43+
<rect fill="none" class="opacity-25" width="29" height="29" />
44+
<path
45+
fill="none"
46+
d="M14.5,6.26H5.19l1.26,17.82c.09,1.21,1.09,2.14,2.3,2.14h11.49c1.21,0,2.22-.94,2.3-2.14l1.26-17.82h-9.31Z"
47+
/>
48+
<path d="M26.17,5.26h-6.88v-1.26c0-1.35-1.09-2.44-2.44-2.44h-4.7c-1.35,0-2.44,1.1-2.44,2.44v1.26H2.83c-.55,0-1,.45-1,1s.45,1,1,1h1.43l1.2,16.89c.12,1.72,1.57,3.07,3.3,3.07h11.49c1.73,0,3.18-1.35,3.3-3.07l1.2-16.89h1.43c.55,0,1-.45,1-1s-.45-1-1-1ZM11.71,4c0-.24.2-.44.44-.44h4.7c.24,0,.44.2.44.44v1.26h-5.58v-1.26ZM21.55,24.01c-.05.68-.62,1.21-1.3,1.21h-11.49c-.68,0-1.25-.53-1.3-1.21l-1.18-16.75h16.47l-1.18,16.75Z" />
49+
<path
50+
class="dark:text-black"
51+
d="M11.29,8.71c-.55,0-1,.45-1,1v12.81c0,.55.45,1,1,1s1-.45,1-1v-12.81c0-.55-.45-1-1-1Z"
52+
/>
53+
<path
54+
class="dark:text-black"
55+
d="M17.71,8.71c-.55,0-1,.45-1,1v12.81c0,.55.45,1,1,1s1-.45,1-1v-12.81c0-.55-.45-1-1-1Z"
56+
/>
57+
</g>
58+
</svg>
59+
</button>`;
60+
};

templates/vanilla-js-example/src/components/login.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {signIn} from '@junobuild/core';
2-
import {addEventClick} from '../utils/render.utils';
2+
import {addEventClick} from '../utils/utils';
33

44
export const renderLogin = (app) => {
55
addEventClick({

templates/vanilla-js-example/src/components/logout.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {signOut} from '@junobuild/core';
2-
import {addEventClick} from '../utils/render.utils';
2+
import {addEventClick} from '../utils/utils';
33

44
export const renderLogout = (app) => {
55
addEventClick({

templates/vanilla-js-example/src/components/modal.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {authSubscribe, setDoc, uploadFile} from '@junobuild/core';
22
import {nanoid} from 'nanoid';
3-
import {addEventClick} from '../utils/render.utils';
3+
import {addEventClick, reload} from '../utils/utils';
44

55
let user;
66
authSubscribe((u) => (user = u));
@@ -47,11 +47,6 @@ const submitEntry = async (modal) => {
4747

4848
closeModal(modal);
4949

50-
const reload = () => {
51-
const event = new Event('reload');
52-
window.dispatchEvent(event);
53-
};
54-
5550
reload();
5651
} catch (err) {
5752
console.error(err);

templates/vanilla-js-example/src/components/table.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {listDocs} from '@junobuild/core';
2+
import {renderDelete} from './delete';
23

34
const list = async () => {
45
const {items} = await listDocs({
@@ -51,9 +52,12 @@ const list = async () => {
5152
<path d="M8.36,26.92c-2,0-3.88-.78-5.29-2.19C.15,21.81.15,17.06,3.06,14.14L12.57,4.64c.39-.39,1.02-.39,1.41,0s.39,1.02,0,1.41L4.48,15.56c-2.14,2.14-2.14,5.62,0,7.76,1.04,1.04,2.41,1.61,3.88,1.61s2.84-.57,3.88-1.61l12.79-12.79c1.47-1.47,1.47-3.87,0-5.34-1.47-1.47-3.87-1.47-5.34,0l-12.45,12.45c-.73.73-.73,1.91,0,2.64.73.73,1.91.73,2.64,0l9.17-9.17c.39-.39,1.02-.39,1.41,0s.39,1.02,0,1.41l-9.17,9.17c-1.51,1.51-3.96,1.51-5.47,0-1.51-1.51-1.51-3.96,0-5.47L18.26,3.77c2.25-2.25,5.92-2.25,8.17,0s2.25,5.92,0,8.17l-12.79,12.79c-1.41,1.41-3.29,2.19-5.29,2.19Z" />
5253
</g>
5354
</svg>
54-
</a>`
55+
</a>
56+
`
5557
: ''
5658
}
59+
60+
${renderDelete({table, item, index})}
5761
</div>
5862
</div>`;
5963
})

templates/vanilla-js-example/src/utils/render.utils.js renamed to templates/vanilla-js-example/src/utils/utils.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,8 @@ export const addEventClick = ({target, selector, fn}) => {
1111
});
1212
observer.observe(target, {childList: true, subtree: true});
1313
};
14+
15+
export const reload = () => {
16+
const event = new Event('reload');
17+
window.dispatchEvent(event);
18+
};

0 commit comments

Comments
 (0)