From 250ca9a1ac534985a7e0e3650fb25683644221b8 Mon Sep 17 00:00:00 2001 From: Hornwitser Date: Wed, 5 Mar 2025 15:36:50 +0100 Subject: [PATCH] Port application from Next.js to Nuxt Nuxt is based on Vue.js and I find their building blocks to be much neater compared to the React based Next.js. --- app.vue | 9 +- old/app/globals.css => assets/global.css | 0 components/EventCard.vue | 34 + components/EventsEdit.vue | 111 +++ .../PushNotification.vue | 75 +- .../timetable.tsx => components/Timetable.vue | 214 +++--- .../timetable-terminology.png | Bin composables/states.ts | 3 + generate-vapid-keys.mjs | 4 +- nuxt.config.ts | 8 +- old/README.md | 36 - old/app/api/events/actions.ts | 129 ---- old/app/favicon.ico | Bin 25931 -> 0 bytes old/app/layout.tsx | 21 - old/app/page.tsx | 12 - old/app/schedule/context.tsx | 39 - old/app/schedule/page.tsx | 35 - old/css.d.ts | 8 - old/next.config.ts | 7 - old/package.json | 26 - old/pnpm-lock.yaml | 677 ------------------ old/public/robots.txt | 2 - old/tsconfig.json | 27 - old/ui/events-edit.tsx | 93 --- old/ui/events.module.css | 11 - old/ui/events.tsx | 24 - old/ui/locations.tsx | 12 - old/ui/timetable.module.css | 46 -- package.json | 10 +- pages/index.vue | 10 + pages/schedule.vue | 57 ++ pnpm-lock.yaml | 94 +++ public/robots.txt | 3 +- {old/public => public}/sw.js | 0 old/schedule.json => schedule.json | 0 server/api/create-event.post.ts | 31 + server/api/delete-event.post.ts | 16 + .../events/route.ts => server/api/events.ts | 8 +- server/api/modify-event.post.ts | 37 + server/api/schedule.ts | 6 + .../route.ts => server/api/subscribe.post.ts | 12 +- .../api/unsubscribe.post.ts | 10 +- {old/app/api/events => server}/streams.ts | 7 +- server/web-push.ts | 56 ++ .../types.ts => shared/types/schedule.d.ts | 0 45 files changed, 662 insertions(+), 1358 deletions(-) rename old/app/globals.css => assets/global.css (100%) create mode 100644 components/EventCard.vue create mode 100644 components/EventsEdit.vue rename old/ui/push-notification.tsx => components/PushNotification.vue (64%) rename old/ui/timetable.tsx => components/Timetable.vue (71%) rename {old/ui => components}/timetable-terminology.png (100%) create mode 100644 composables/states.ts delete mode 100644 old/README.md delete mode 100644 old/app/api/events/actions.ts delete mode 100644 old/app/favicon.ico delete mode 100644 old/app/layout.tsx delete mode 100644 old/app/page.tsx delete mode 100644 old/app/schedule/context.tsx delete mode 100644 old/app/schedule/page.tsx delete mode 100644 old/css.d.ts delete mode 100644 old/next.config.ts delete mode 100644 old/package.json delete mode 100644 old/pnpm-lock.yaml delete mode 100644 old/public/robots.txt delete mode 100644 old/tsconfig.json delete mode 100644 old/ui/events-edit.tsx delete mode 100644 old/ui/events.module.css delete mode 100644 old/ui/events.tsx delete mode 100644 old/ui/locations.tsx delete mode 100644 old/ui/timetable.module.css create mode 100644 pages/index.vue create mode 100644 pages/schedule.vue rename {old/public => public}/sw.js (100%) rename old/schedule.json => schedule.json (100%) create mode 100644 server/api/create-event.post.ts create mode 100644 server/api/delete-event.post.ts rename old/app/api/events/route.ts => server/api/events.ts (80%) create mode 100644 server/api/modify-event.post.ts create mode 100644 server/api/schedule.ts rename old/app/api/subscribe/route.ts => server/api/subscribe.post.ts (63%) rename old/app/api/unsubscribe/route.ts => server/api/unsubscribe.post.ts (66%) rename {old/app/api/events => server}/streams.ts (86%) create mode 100644 server/web-push.ts rename old/app/schedule/types.ts => shared/types/schedule.d.ts (100%) diff --git a/app.vue b/app.vue index a4641f1..18e77f8 100644 --- a/app.vue +++ b/app.vue @@ -1,6 +1,7 @@ + + diff --git a/old/app/globals.css b/assets/global.css similarity index 100% rename from old/app/globals.css rename to assets/global.css diff --git a/components/EventCard.vue b/components/EventCard.vue new file mode 100644 index 0000000..163168a --- /dev/null +++ b/components/EventCard.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/components/EventsEdit.vue b/components/EventsEdit.vue new file mode 100644 index 0000000..9fd23e7 --- /dev/null +++ b/components/EventsEdit.vue @@ -0,0 +1,111 @@ +