99} from '@boolti/api' ;
1010import { Button , Drawer , ShowPreview , useConfirm , useToast } from '@boolti/ui' ;
1111import { format } from 'date-fns' ;
12- import { useCallback , useEffect , useRef , useState } from 'react' ;
12+ import { useCallback , useEffect , useMemo , useRef , useState } from 'react' ;
1313import { useForm } from 'react-hook-form' ;
1414import { useParams } from 'react-router-dom' ;
1515
@@ -57,18 +57,21 @@ const ShowInfoPage = () => {
5757 const editShowInfoMutation = useEditShowInfo ( ) ;
5858 const uploadShowImageMutation = useUploadShowImage ( ) ;
5959 const isNonTicketingShow = ! showSalesInfo ?. salesEndTime && ! showSalesInfo ?. salesStartTime ;
60- // const isFormDisabled = !isNonTicketingShow && show?.isEnded;
61- const isFormDisabled = false
62-
63- // const isSaveButtonDisabled = useMemo(
64- // () =>
65- // !showBasicInfoForm.formState.isValid ||
66- // !showDetailInfoForm.formState.isValid ||
67- // imageFiles.length === 0 ||
68- // (isFormDisabled),
69- // [imageFiles.length, isFormDisabled, showBasicInfoForm.formState.isValid, showDetailInfoForm.formState.isValid],
70- // );
71- const isSaveButtonDisabled = false
60+
61+ const isSaveButtonDisabled = useMemo (
62+ ( ) =>
63+ ! showBasicInfoForm . formState . isValid ||
64+ ! showDetailInfoForm . formState . isValid ||
65+ imageFiles . length === 0 ||
66+ ( ! isNonTicketingShow && show ?. isEnded ) ,
67+ [
68+ imageFiles . length ,
69+ isNonTicketingShow ,
70+ show ?. isEnded ,
71+ showBasicInfoForm . formState . isValid ,
72+ showDetailInfoForm . formState . isValid ,
73+ ] ,
74+ ) ;
7275
7376 const toast = useToast ( ) ;
7477 const confirm = useConfirm ( ) ;
@@ -89,12 +92,12 @@ const ShowInfoPage = () => {
8992 return await uploadShowImageMutation . mutateAsync ( newImageFiles ) ;
9093 } ) ( ) ;
9194
92- // const [isValidShowBasicInfoFormInputs, isValidShowDetailInfoFormInputs] = await Promise.all([
93- // showBasicInfoForm.trigger(),
94- // showDetailInfoForm.trigger(),
95- // ]);
95+ const [ isValidShowBasicInfoFormInputs , isValidShowDetailInfoFormInputs ] = await Promise . all ( [
96+ showBasicInfoForm . trigger ( ) ,
97+ showDetailInfoForm . trigger ( ) ,
98+ ] ) ;
9699
97- // if (!isValidShowBasicInfoFormInputs || !isValidShowDetailInfoFormInputs) return;
100+ if ( ! isValidShowBasicInfoFormInputs || ! isValidShowDetailInfoFormInputs ) return ;
98101
99102 const showBasicInfoFormInputs = showBasicInfoForm . getValues ( ) ;
100103 const showDetailInfoFormInputs = showDetailInfoForm . getValues ( ) ;
@@ -258,7 +261,7 @@ const ShowInfoPage = () => {
258261 form = { showBasicInfoForm }
259262 imageFiles = { imageFiles }
260263 isNonTicketingShow = { isNonTicketingShow }
261- disabled = { isFormDisabled }
264+ disabled = { ! isNonTicketingShow && show . isEnded }
262265 onDropImage = { ( acceptedFiles ) => {
263266 setImageFiles ( ( prevImageFiles ) => [
264267 ...prevImageFiles ,
@@ -282,7 +285,7 @@ const ShowInfoPage = () => {
282285 < Styled . ShowInfoFormContent style = { { marginBottom : '48px' } } >
283286 < ShowDetailInfoFormContent
284287 form = { showDetailInfoForm }
285- disabled = { isFormDisabled }
288+ disabled = { ! isNonTicketingShow && show . isEnded }
286289 />
287290 </ Styled . ShowInfoFormContent >
288291 < Styled . ShowInfoFormContent >
0 commit comments