11import { useState } from "preact/hooks" ;
22import { sendAuth , teams , authError } from "../store" ;
3+ import { AttendanceMode } from "../types" ;
34
45export function Auth ( ) {
56 const [ mode , setMode ] = useState < "login" | "register" > ( "login" ) ;
67 const [ name , setName ] = useState ( "" ) ;
78 const [ team , setTeam ] = useState ( teams . value [ 0 ] || "" ) ;
9+ const [ attendanceMode , setAttendanceMode ] = useState ( AttendanceMode . OnSite ) ;
810 const [ password , setPassword ] = useState ( "" ) ;
911 const [ isNotNao , setIsNotNao ] = useState ( false ) ;
1012
@@ -14,14 +16,19 @@ export function Auth() {
1416 alert ( "NAOs are not allowed in MOPAD" ) ;
1517 return ;
1618 }
17- const payload = { name, team, password } ;
18- sendAuth ( mode === "login" ? { Login : payload } : { Register : payload } ) ;
19+ sendAuth (
20+ mode === "login"
21+ ? { Login : { name, team, password } }
22+ : {
23+ Register : { name, team, password, attendance_mode : attendanceMode } ,
24+ } ,
25+ ) ;
1926 } ;
2027
2128 const isValid = name && password && ( mode === "login" || isNotNao ) ;
2229
2330 return (
24- < div id = { mode } class = "center" >
31+ < form id = { mode } class = "center" >
2532 < h1 > MOPAD</ h1 >
2633 < h2 > Moderated Organization PAD (powerful, agile, distributed)</ h2 >
2734 < h3 > { mode === "login" ? "Login" : "Register" } </ h3 >
@@ -54,18 +61,38 @@ export function Auth() {
5461 />
5562
5663 { mode === "register" && (
57- < div class = "i-am-not-a-nao" >
58- < input
59- type = "checkbox"
60- id = "nao-check"
61- checked = { isNotNao }
62- onChange = { ( e ) => setIsNotNao ( e . currentTarget . checked ) }
63- />
64- < label htmlFor = "nao-check" > I'm not a NAO</ label >
65- </ div >
64+ < >
65+ < div class = "registration-checkbox" >
66+ < input
67+ type = "checkbox"
68+ id = "attendance-mode-check"
69+ checked = { attendanceMode == AttendanceMode . Remote }
70+ onChange = { ( e ) =>
71+ setAttendanceMode (
72+ e . currentTarget . checked
73+ ? AttendanceMode . Remote
74+ : AttendanceMode . OnSite ,
75+ )
76+ }
77+ />
78+ < label htmlFor = "attendance-mode-check" >
79+ Remote Participation only
80+ </ label >
81+
82+ < div class = "registration-checkbox" >
83+ < input
84+ type = "checkbox"
85+ id = "nao-check"
86+ checked = { isNotNao }
87+ onChange = { ( e ) => setIsNotNao ( e . currentTarget . checked ) }
88+ />
89+ < label htmlFor = "nao-check" > I'm not a NAO</ label >
90+ </ div >
91+ </ div >
92+ </ >
6693 ) }
6794
68- < button disabled = { ! isValid } onClick = { handleSubmit } >
95+ < button type = "submit" disabled = { ! isValid } onClick = { handleSubmit } >
6996 { mode === "login" ? "Login" : "Register" }
7097 </ button >
7198
@@ -85,7 +112,7 @@ export function Auth() {
85112 </ div >
86113
87114 < Footer />
88- </ div >
115+ </ form >
89116 ) ;
90117}
91118
0 commit comments