Skip to content
This repository has been archived by the owner on Sep 24, 2024. It is now read-only.

feat(ledensysteem): add groups and member pages #35

Open
wants to merge 35 commits into
base: main
Choose a base branch
from

Conversation

Gerbuuun
Copy link
Member

@Gerbuuun Gerbuuun commented Nov 26, 2022

Add groups and member pages

πŸ”— Linked issue

#33 #34

❓ Wat voor soort aanpassing?

  • πŸ“– Documentatie (updates aan JSDoc of README)
  • 🐞 Bugfix (een non-breaking change dat een probleem oplost)
  • πŸ‘Œ Enhancement (verbeterd een bestaande functionaliteit: oa. performance)
  • ✨ Nieuwe feature (een non-breaking change dat functionaliteit toevoegt)
  • ⚠️ Breaking change (fix of feature dat bestaande functionaliteiten verandert)

πŸ“š Beschrijving

πŸ“ Checklist

  • Ik heb een issue gelinkt.
  • Ik heb de wiki geΓΌpdate gebaseerd op mijn aanpassingen.

@Gerbuuun Gerbuuun self-assigned this Dec 10, 2022
@Gerbuuun Gerbuuun added ✨ Enhancement New feature or request πŸ–₯️ Frontend Frontend related issues labels Dec 10, 2022
@Gerbuuun Gerbuuun changed the title Groups page feat(ledensysteem): add groups and member pages Dec 15, 2022
@Gerbuuun Gerbuuun marked this pull request as ready for review December 16, 2022 13:40
@Gerbuuun
Copy link
Member Author

Ik denk dat de basis is gelegd. Ik heb nog wel moeite met types meekrijgen van de api.
Ik kan bijvoorbeeld geen prisma types gebruiken in de pages.
Hierdoor moet ik gebruik maken van unknown en verlies ik dus alle types.
Ook kan Webstorm (ik ook niet trouwens) proteusId vinden in de session user.
@dsluijk hoe zou jij dit aanpakken? Even een yarn typecheck doen en je krijgt te zien wat ik bedoel

@Gerbuuun
Copy link
Member Author

Gerbuuun commented Dec 16, 2022

Ok ik ben er dus achter dat VSCode en Webstorm typescript op verschillende manieren interpreteren.
Dus wat in VSCode geen errors geeft, geeft wel errors in Webstorm.
Volgens mij heeft Webstorm moeite met ref types.
Ik heb nu grotendeels shit gefixt maar dit werkt alleen met internal modules import (die je dus met eslint hebt verboden...)
Als laatste: proteusId bestaat nog steeds niet in de session data.
En hoe werken error handlers?

@Gerbuuun Gerbuuun requested a review from dsluijk December 16, 2022 15:43
components/Input/Date.vue Outdated Show resolved Hide resolved
components/SideMenu.vue Outdated Show resolved Hide resolved
composables/useDateFormatter.ts Show resolved Hide resolved
middleware/validateRouteUUID.global.ts Outdated Show resolved Hide resolved
pages/groepen.vue Outdated Show resolved Hide resolved
pages/groepen/[id]/overzicht.vue Outdated Show resolved Hide resolved
pages/groepen/mijn-groepen.vue Show resolved Hide resolved
pages/groepen/nieuw.vue Show resolved Hide resolved
pages/groepen/nieuw.vue Show resolved Hide resolved
pages/leden/[id]/gegevens.vue Show resolved Hide resolved
@dsluijk
Copy link
Member

dsluijk commented Dec 17, 2022

proteusId is niet typed, maar die bestaat wel. Het was niet makkelijk om de sessie opnieuw te typen. Ik ben aan het kijken om de sessies iets anders te gaan doen.

@dsluijk
Copy link
Member

dsluijk commented Dec 17, 2022

useRequest heeft error handlers, deze moet je zelf definieren. Elke handler checkt voor een specifieke error condition, en returned een error object op basis daarvan. Deze error is dan weer teruggegeven naar de component met de error ref, volledig typed. Als je false returned uit een error handler, dan wordt de volgende error handler functie gecalled met de error, totdat er een een niet false teruggeeft. Met de errHandler functie kan je ook filteren op het type apiError wat je terugkrijgt, dat hoef je niet die types te checken. Anders kan je gewoon een functie met een parameter geven, maar dan krijg je geen type narrowing per apiError. Dit is handig voor cache-all's. Een voorbeeld is hier te vinden: https://github.com/Proteus-Eretes/mijn-proteus/blob/main/components/Page/Material/TypesCreate.vue#L61

@Gerbuuun
Copy link
Member Author

Gerbuuun commented Dec 20, 2022

useFetch brengt helaas weer de null type als union met de returntype van de api route.
Hierdoor gaat de typecheck dus fout.

Ook wanneer je een useRequest een type geeft:

const { error, requesting, send, data } = useRequest<
  Awaited<ReturnType<typeof import("~~/server/api/groups/index.post").default>>
>("/api/groups", {...});

dan worden de errorHandler types unknown.
Dus je kunt of alleen errorHandlers getyped hebben of alleen de return data getyped hebben :(
(totdat nitro update live staat ofc)

@Gerbuuun Gerbuuun requested a review from dsluijk December 20, 2022 22:34
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
✨ Enhancement New feature or request πŸ–₯️ Frontend Frontend related issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Groups page where you can search all groups Member page where you can search all members
2 participants