Skip to content

feat: nouvelle version front en Vue 3 + Vuetify (refonte manager/équipe)#8

Open
TraXXX86 wants to merge 3 commits into
mainfrom
codex/create-new-vue.js-app-with-vuetify
Open

feat: nouvelle version front en Vue 3 + Vuetify (refonte manager/équipe)#8
TraXXX86 wants to merge 3 commits into
mainfrom
codex/create-new-vue.js-app-with-vuetify

Conversation

@TraXXX86

Copy link
Copy Markdown
Collaborator

Motivation

  • Remplacer l’interface front legacy par une base moderne (Vue 3 + Vuetify) pour faciliter l’usage par les managers et leur équipe et réduire la dette front.
  • Conserver l’esprit du « fil » type réseau social interne (échanges quotidiens) tout en ajoutant un espace pour échanges formels (compte‑rendus, décisions, actions).
  • Fournir un run local simple via Vite et un docker-compose.yml minimal pour démarrer le front rapidement.

Description

  • Ajout d’une nouvelle application front dans frontend-vue/ (Vite, Vue 3, Vuetify) avec package.json, vite.config.js et src/ contenant App.vue, main.js et composants PostComposer.vue, PostFeed.vue, MeetingPanel.vue.
  • Implémentation d’un composable useWorkspace avec persistance via localStorage, filtrage par canal, recherche, likes, commentaires, création de posts et réunions, et jeux de données initiaux dans src/data/sampleData.js.
  • Fourniture d’un docker-compose.yml simplifié pour lancer uniquement le front (service Node qui exécute npm install && npm run dev) et mise à jour du README.md pour documenter le nouveau périmètre et les commandes d’exécution.
  • Ajout d’un .gitignore pour frontend-vue, et inclusion du package-lock.json (dépendances installées et build produit localement durant la validation).

Testing

  • npm install (dans frontend-vue) exécuté et terminé sans erreurs.
  • npm run build (dans frontend-vue) exécuté avec succès et a produit les assets de production (build Vite).
  • npm run dev a 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.
  • Tentative de vérification de docker compose échouée car Docker n’est pas disponible dans l’environnement d’exécution (command not found).

Codex Task

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant