feat: nouvelle version front en Vue 3 + Vuetify (refonte manager/équipe)#8
feat: nouvelle version front en Vue 3 + Vuetify (refonte manager/équipe)#8TraXXX86 wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0367240add
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const STORAGE_KEY = 'teamtoolbox-vue-workspace' | ||
|
|
||
| function buildState() { | ||
| const saved = localStorage.getItem(STORAGE_KEY) |
There was a problem hiding this comment.
Guard workspace init against localStorage access errors
Accessing localStorage is not always safe in production browsers (for example when storage is blocked by privacy settings or policy), and buildState() calls localStorage.getItem during app setup without a protective try/catch. In those contexts this throws a SecurityError and prevents the Vue app from mounting at all, so affected users get a broken page instead of a fallback in-memory workspace.
Useful? React with 👍 / 👎.
| } | ||
|
|
||
| try { | ||
| return JSON.parse(saved) |
There was a problem hiding this comment.
Validate persisted workspace schema before returning it
The parsed storage payload is returned as-is, but later code assumes state.value.posts is an array and each post has fields like tags; any stale/corrupted value (e.g. {} or an older schema) will crash at runtime in filteredPosts (.filter / .join) and break rendering. The persisted object should be normalized/merged with defaults before being used.
Useful? React with 👍 / 👎.
Motivation
docker-compose.ymlminimal pour démarrer le front rapidement.Description
frontend-vue/(Vite, Vue 3, Vuetify) avecpackage.json,vite.config.jsetsrc/contenantApp.vue,main.jset composantsPostComposer.vue,PostFeed.vue,MeetingPanel.vue.useWorkspaceavec persistance vialocalStorage, filtrage par canal, recherche, likes, commentaires, création de posts et réunions, et jeux de données initiaux danssrc/data/sampleData.js.docker-compose.ymlsimplifié pour lancer uniquement le front (service Node qui exécutenpm install && npm run dev) et mise à jour duREADME.mdpour documenter le nouveau périmètre et les commandes d’exécution..gitignorepourfrontend-vue, et inclusion dupackage-lock.json(dépendances installées et build produit localement durant la validation).Testing
npm install(dansfrontend-vue) exécuté et terminé sans erreurs.npm run build(dansfrontend-vue) exécuté avec succès et a produit les assets de production (build Vite).npm run deva démarré le serveur Vite (serveur prêt sur le port 5173) et une capture via Playwright a confirmé l’affichage initial; ces vérifications ont réussi.docker composeéchouée car Docker n’est pas disponible dans l’environnement d’exécution (command not found).Codex Task