@@ -96,7 +96,7 @@ export const AssignmentBuilder = () => {
9696 // Event handlers
9797 const handleCreateNew = ( ) => {
9898 navigateToCreate ( "basic" ) ;
99- reset ( defaultAssignment ) ;
99+ reset ( defaultAssignment as unknown as Assignment ) ;
100100 } ;
101101
102102 const handleEdit = ( assignment : Assignment ) => {
@@ -108,18 +108,6 @@ export const AssignmentBuilder = () => {
108108 await duplicateAssignment ( assignment . id ) ;
109109 } ;
110110
111- const handleVisibilityChange = async ( assignment : Assignment , visible : boolean ) => {
112- try {
113- await updateAssignment ( {
114- ...assignment ,
115- visible
116- } ) ;
117- toast . success ( `Assignment ${ visible ? "visible" : "hidden" } for students` ) ;
118- } catch ( error ) {
119- toast . error ( "Failed to update assignment visibility" ) ;
120- }
121- } ;
122-
123111 const handleReleasedChange = async ( assignment : Assignment , released : boolean ) => {
124112 try {
125113 await updateAssignment ( {
@@ -144,6 +132,21 @@ export const AssignmentBuilder = () => {
144132 }
145133 } ;
146134
135+ const handleVisibilityChange = async (
136+ assignment : Assignment ,
137+ data : { visible : boolean ; visible_on : string | null ; hidden_on : string | null }
138+ ) => {
139+ try {
140+ await updateAssignment ( {
141+ ...assignment ,
142+ ...data
143+ } ) ;
144+ toast . success ( "Visibility updated" ) ;
145+ } catch ( error ) {
146+ toast . error ( "Failed to update visibility" ) ;
147+ }
148+ } ;
149+
147150 const handleWizardComplete = async ( ) => {
148151 const formValues = getValues ( ) ;
149152 const payload : CreateAssignmentPayload = {
@@ -156,7 +159,9 @@ export const AssignmentBuilder = () => {
156159 nofeedback : formValues . nofeedback ,
157160 nopause : formValues . nopause ,
158161 peer_async_visible : formValues . peer_async_visible ,
159- visible : false ,
162+ visible : formValues . visible ,
163+ visible_on : formValues . visible_on || null ,
164+ hidden_on : formValues . hidden_on || null ,
160165 released : true ,
161166 enforce_due : formValues . enforce_due || false
162167 } ;
@@ -192,9 +197,9 @@ export const AssignmentBuilder = () => {
192197 onCreateNew = { handleCreateNew }
193198 onEdit = { handleEdit }
194199 onDuplicate = { handleDuplicate }
195- onVisibilityChange = { handleVisibilityChange }
196200 onReleasedChange = { handleReleasedChange }
197201 onEnforceDueChange = { handleEnforceDueChange }
202+ onVisibilityChange = { handleVisibilityChange }
198203 onRemove = { onRemove }
199204 />
200205 ) }
@@ -205,13 +210,21 @@ export const AssignmentBuilder = () => {
205210 nameError = { nameError }
206211 canProceed = { canProceed }
207212 onBack = { ( ) => {
208- if ( wizardStep === "type" ) {
213+ if ( wizardStep === "visibility" ) {
214+ updateWizardStep ( "type" ) ;
215+ } else if ( wizardStep === "type" ) {
209216 updateWizardStep ( "basic" ) ;
210217 } else {
211218 navigateToList ( ) ;
212219 }
213220 } }
214- onNext = { ( ) => updateWizardStep ( "type" ) }
221+ onNext = { ( ) => {
222+ if ( wizardStep === "basic" ) {
223+ updateWizardStep ( "type" ) ;
224+ } else if ( wizardStep === "type" ) {
225+ updateWizardStep ( "visibility" ) ;
226+ }
227+ } }
215228 onComplete = { handleWizardComplete }
216229 onNameChange = { handleNameChange }
217230 onTypeSelect = { ( type ) => handleTypeSelect ( type , setValue ) }
0 commit comments