[Discover + Join/Leave] Bind join and host-manage UI states
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start from the existing layout in lib/screens/home_screen.dart, then create the new lib/screens/sessions/session_detail_screen.dart and choose the Manage, Leave, or Join action from the isHost and isJoined values. Read the onJoin and joinErrorMessage/recoveryFor contracts in the blocking issues (#105, #107, #108) before wiring the pending state. Done when test/screens/sessions/session_detail_screen_dp_d07_test.dart covers the host, pending-tap, and session_full cases, and flutter analyze passes.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What to build
Show the right action on a study meeting: Manage for its host, Leave for a joined student, and Join otherwise. While joining, prevent repeated taps and show the server’s result before changing the visible membership state.
Files
lib/screens/sessions/session_detail_screen.dart(new file)- Starting example: lib/screens/home_screen.dart
Steps
- Use the supplied isHost/isJoined values to show Manage for the host, Leave for another joined student, and Join otherwise.
- When Join is tapped, disable repeated taps, wait for onJoin, then refresh the meeting and seat count after success.
- If joining fails, use joinErrorMessage and recoveryFor. A last-seat failure should show “This session is full.” and refresh the details; do not mark the student joined.
Example
Host never seesJoin; pending tap disabled; session_full leaves user unjoined and refreshes seats.
Check it works
In test/screens/sessions/session_detail_screen_dp_d07_test.dart, check the example above and the failure or limit described in the steps. Run flutter test test/screens/sessions/session_detail_screen_dp_d07_test.dart and flutter analyze.
Before starting
- #105 — Refresh Discover while keeping previous data
- #107 — Map enrollment/host/onboarding join errors
- #32 — Leave with an own-membership delete
- #108 — Read authorized session detail
- #70 — Bind submission completion to the auth gate
References
Assign yourself before starting, or comment to claim the issue. Project setup.
- Lingua principale
- PLpgSQL
- Stelle
- 0
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di DevDogsUGA/DogPack
-
polish
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
DevDogsUGA/DogPack#131 ·
-
polish
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
DevDogsUGA/DogPack#130 ·
-
moderation
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
DevDogsUGA/DogPack#119 ·
-
moderation
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
DevDogsUGA/DogPack#113 ·
-
discover
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
DevDogsUGA/DogPack#106 ·
Tutte le issue di DevDogsUGA/DogPack
Issue simili
-
useFragment does not require `variables` when the fragment's variables type has required fieldsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
apollographql/apollo-client#13493 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
PDFCraftTool/pdfcraft#189 ·
-
devops frontend good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno