From e26b4eb4a5a5e4fa1ce6a74a2572c0ada6747a10 Mon Sep 17 00:00:00 2001 From: Florian Bouillon Date: Mon, 9 Oct 2023 11:47:11 +0200 Subject: [PATCH] feat: Upgrade template based on projects made with it Signed-off-by: Florian Bouillon --- .vscode/extensions.json | 8 +- .vscode/launch.json | 22 +-- e2e/README.md | 2 - e2e/example.spec.ts | 2 +- package.json | 5 +- src/assets/components/layouts/Header/Logo.svg | 9 ++ src/assets/layouts/{Base => Head}/favicon.png | Bin src/assets/layouts/{Base => Head}/favicon.svg | 18 +-- src/assets/pages/404/404.light.svg | 1 + src/assets/pages/404/404.svg | 1 + src/components/global/Breadcrumb.astro | 28 ++++ src/components/global/Button.astro | 35 +++++ src/components/global/Input.astro | 83 +++++++++++ src/components/{ => global}/Picture.astro | 2 +- src/components/global/Range.astro | 30 ++++ src/components/global/Select.astro | 103 ++++++++++++++ src/components/global/Table/Table.astro | 47 +++++++ src/components/global/Table/TableProps.ts | 4 + src/components/global/Table/TableUtil.ts | 95 +++++++++++++ .../{ => layouts}/Favicon/Favicon.astro | 0 .../{ => layouts}/Favicon/Manifest.ts | 0 src/components/layouts/Footer.astro | 26 ++++ src/components/layouts/Header.astro | 38 +++++ src/content/config.ts | 15 -- src/content/config.ts.tmp | 29 ++++ src/env.d.ts | 43 +++--- src/layouts/Base.astro | 24 +--- src/layouts/Head.astro | 132 ++++++++++++++++++ src/layouts/Layout.astro | 11 -- src/layouts/MainLayout.astro | 30 ++++ src/libs/Component.ts | 53 +++++++ src/libs/ResponseBuilder.ts | 10 +- src/middleware/index.ts | 4 +- src/middleware/logger.ts | 14 ++ src/middleware/responseBuilder.ts | 21 --- src/models/Dao.ts | 16 ++- src/pages/404.astro | 24 ++++ src/pages/api/event.ts | 23 +++ src/pages/event.ts | 23 +++ src/pages/index.astro | 23 ++- src/pages/js/script.js.ts | 13 ++ tailwind.config.cjs | 3 +- 42 files changed, 934 insertions(+), 136 deletions(-) create mode 100644 src/assets/components/layouts/Header/Logo.svg rename src/assets/layouts/{Base => Head}/favicon.png (100%) rename src/assets/layouts/{Base => Head}/favicon.svg (98%) create mode 100644 src/assets/pages/404/404.light.svg create mode 100644 src/assets/pages/404/404.svg create mode 100644 src/components/global/Breadcrumb.astro create mode 100644 src/components/global/Button.astro create mode 100644 src/components/global/Input.astro rename src/components/{ => global}/Picture.astro (98%) create mode 100644 src/components/global/Range.astro create mode 100644 src/components/global/Select.astro create mode 100644 src/components/global/Table/Table.astro create mode 100644 src/components/global/Table/TableProps.ts create mode 100644 src/components/global/Table/TableUtil.ts rename src/components/{ => layouts}/Favicon/Favicon.astro (100%) rename src/components/{ => layouts}/Favicon/Manifest.ts (100%) create mode 100644 src/components/layouts/Footer.astro create mode 100644 src/components/layouts/Header.astro delete mode 100644 src/content/config.ts create mode 100644 src/content/config.ts.tmp create mode 100644 src/layouts/Head.astro delete mode 100644 src/layouts/Layout.astro create mode 100644 src/layouts/MainLayout.astro create mode 100644 src/libs/Component.ts create mode 100644 src/middleware/logger.ts delete mode 100644 src/middleware/responseBuilder.ts create mode 100644 src/pages/404.astro create mode 100644 src/pages/api/event.ts create mode 100644 src/pages/event.ts create mode 100644 src/pages/js/script.js.ts diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 87f0035..3a1c9ec 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,4 +1,4 @@ -{ - "recommendations": ["astro-build.astro-vscode"], - "unwantedRecommendations": [] -} +{ + "recommendations": ["astro-build.astro-vscode"], + "unwantedRecommendations": [] +} diff --git a/.vscode/launch.json b/.vscode/launch.json index c639b08..230708d 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,11 +1,11 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "command": "./node_modules/.bin/astro dev", - "name": "Development server", - "request": "launch", - "type": "node-terminal" - } - ] -} +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/e2e/README.md b/e2e/README.md index e54ba9e..bb3a949 100644 --- a/e2e/README.md +++ b/e2e/README.md @@ -1,5 +1,3 @@ # e2e Hold End 2 End tests - -currently WIP diff --git a/e2e/example.spec.ts b/e2e/example.spec.ts index 2bddfcd..86f27e9 100644 --- a/e2e/example.spec.ts +++ b/e2e/example.spec.ts @@ -4,5 +4,5 @@ test('has title', async ({ page }) => { await page.goto('/'); // Expect a title "to contain" a substring. - await expect(page).toHaveTitle(/Astro/); + await expect(page).toHaveTitle(/Dzeio/); }) diff --git a/package.json b/package.json index 968d957..ad3d8d8 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ "@dzeio/url-manager": "^1", "astro": "^3", "lucide-astro": "^0", - "sharp": "^0.32.6", + "sharp": "^0", + "simple-icons-astro": "^9", "tailwindcss": "^3" }, "devDependencies": { @@ -30,7 +31,7 @@ "@playwright/test": "^1", "@types/node": "^20", "@vitest/coverage-v8": "^0", - "typescript": "^5.2.2", + "typescript": "^5", "vitest": "^0" } } diff --git a/src/assets/components/layouts/Header/Logo.svg b/src/assets/components/layouts/Header/Logo.svg new file mode 100644 index 0000000..f157bd1 --- /dev/null +++ b/src/assets/components/layouts/Header/Logo.svg @@ -0,0 +1,9 @@ + + + + diff --git a/src/assets/layouts/Base/favicon.png b/src/assets/layouts/Head/favicon.png similarity index 100% rename from src/assets/layouts/Base/favicon.png rename to src/assets/layouts/Head/favicon.png diff --git a/src/assets/layouts/Base/favicon.svg b/src/assets/layouts/Head/favicon.svg similarity index 98% rename from src/assets/layouts/Base/favicon.svg rename to src/assets/layouts/Head/favicon.svg index 4684adf..f157bd1 100644 --- a/src/assets/layouts/Base/favicon.svg +++ b/src/assets/layouts/Head/favicon.svg @@ -1,9 +1,9 @@ - - - - + + + + diff --git a/src/assets/pages/404/404.light.svg b/src/assets/pages/404/404.light.svg new file mode 100644 index 0000000..d06fd45 --- /dev/null +++ b/src/assets/pages/404/404.light.svg @@ -0,0 +1 @@ + diff --git a/src/assets/pages/404/404.svg b/src/assets/pages/404/404.svg new file mode 100644 index 0000000..9b5bfee --- /dev/null +++ b/src/assets/pages/404/404.svg @@ -0,0 +1 @@ + diff --git a/src/components/global/Breadcrumb.astro b/src/components/global/Breadcrumb.astro new file mode 100644 index 0000000..ea59782 --- /dev/null +++ b/src/components/global/Breadcrumb.astro @@ -0,0 +1,28 @@ +--- +interface Props { + items: Array<{ + text: string + href?: string | undefined + }> +} +--- + + diff --git a/src/components/global/Button.astro b/src/components/global/Button.astro new file mode 100644 index 0000000..5f7a38b --- /dev/null +++ b/src/components/global/Button.astro @@ -0,0 +1,35 @@ +--- +import { objectOmit } from '@dzeio/object-util' + +interface Props extends Omit { + type?: 'outline' | 'ghost' +} + +const classes = [ + "button", + Astro.props.type, + Astro.props.class +] + +--- +{'href' in Astro.props && ( + + + +) || ( + +)} + + diff --git a/src/components/global/Input.astro b/src/components/global/Input.astro new file mode 100644 index 0000000..41fc52a --- /dev/null +++ b/src/components/global/Input.astro @@ -0,0 +1,83 @@ +--- +import { objectOmit } from '@dzeio/object-util' +interface Props extends Omit { + label?: string + type?: astroHTML.JSX.InputHTMLAttributes['type'] | 'textarea' + block?: boolean + suffix?: string + prefix?: string +} + +const baseProps = objectOmit(Astro.props, 'label', 'block', 'suffix', 'prefix') + +if (baseProps.type === 'textarea') { + delete baseProps.type +} +--- + + +