diff --git a/backend/handlers/cards.go b/backend/handlers/cards.go index c789890..149f969 100644 --- a/backend/handlers/cards.go +++ b/backend/handlers/cards.go @@ -112,5 +112,5 @@ func UpdateCard(c *fiber.Ctx) error { return c.SendStatus(fiber.StatusNotFound) } - return c.SendStatus(fiber.StatusOK) + return c.SendStatus(fiber.StatusNoContent) } diff --git a/frontend/package-lock.json b/frontend/package-lock.json index b4b8bbc..3bfbf25 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -18,6 +18,7 @@ "@types/eslint": "8.56.0", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", + "@zerodevx/svelte-toast": "^0.9.5", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.35.1", @@ -1144,6 +1145,15 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/@zerodevx/svelte-toast": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@zerodevx/svelte-toast/-/svelte-toast-0.9.5.tgz", + "integrity": "sha512-JLeB/oRdJfT+dz9A5bgd3Z7TuQnBQbeUtXrGIrNWMGqWbabpepBF2KxtWVhL2qtxpRqhae2f6NAOzH7xs4jUSw==", + "dev": true, + "peerDependencies": { + "svelte": "^3.57.0 || ^4.0.0" + } + }, "node_modules/acorn": { "version": "8.11.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", diff --git a/frontend/package.json b/frontend/package.json index a1bcf32..9993b9c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -20,6 +20,7 @@ "@types/eslint": "8.56.0", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", + "@zerodevx/svelte-toast": "^0.9.5", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.35.1", diff --git a/frontend/src/components/card.svelte b/frontend/src/components/card.svelte index 82ac5da..f19ed36 100644 --- a/frontend/src/components/card.svelte +++ b/frontend/src/components/card.svelte @@ -1,5 +1,4 @@ + + + +
  • + {#if edit} + { + if (e.key === 'Enter') { + updateProject(); + } + }} + use:focus + /> + {:else} +
    (location.href = `/${project.id}`)} + on:keydown={(e) => { + if (e.key === 'Enter') { + location.href = `/${project.id}`; + } + }} + tabindex="0" + role="button" + > + {project.title} +
    + {/if} + +
    + {#if !edit} + Edit (edit = !edit)} + role="button" + tabindex="0" + on:keydown|stopPropagation={(e) => { + if (e.key === 'Enter') { + edit = !edit; + } + }} + /> + {/if} + Delete deleteProject(project)} + role="button" + tabindex="0" + on:keydown={(e) => { + if (e.key === 'Enter') { + deleteProject(project); + } + }} + /> +
    +
  • diff --git a/frontend/src/components/sidebar.svelte b/frontend/src/components/sidebar.svelte index 046948c..cc2724c 100644 --- a/frontend/src/components/sidebar.svelte +++ b/frontend/src/components/sidebar.svelte @@ -1,13 +1,56 @@ - \ No newline at end of file + + + + +
    +

    Projects

    + +
    { + if (e.key === 'Enter') { + createProject(); + } + }} + > + Add +
    +
    + + diff --git a/frontend/src/routes/[project]/+page.svelte b/frontend/src/routes/[project]/+page.svelte index 36ac04d..4ccab00 100644 --- a/frontend/src/routes/[project]/+page.svelte +++ b/frontend/src/routes/[project]/+page.svelte @@ -2,6 +2,7 @@ import Project from '../../components/project.svelte'; import Sidebar from '../../components/sidebar.svelte'; import { page } from '$app/stores'; + import { SvelteToast } from '@zerodevx/svelte-toast'; let projectId: number = +$page.params.project; @@ -10,6 +11,7 @@ +