File tree 2 files changed +17
-8
lines changed
2 files changed +17
-8
lines changed Original file line number Diff line number Diff line change 1
1
import { properties , useResource , useStore , useTitle } from '@tomic/react' ;
2
2
import React , { useCallback , useState } from 'react' ;
3
- import { useQueryString } from '../../../helpers/navigation' ;
3
+ import { newURLParams , useQueryString } from '../../../helpers/navigation' ;
4
4
import { useEffectOnce } from '../../../hooks/useEffectOnce' ;
5
5
import { Button } from '../../Button' ;
6
6
import { DialogActions , DialogContent , DialogTitle } from '../../Dialog' ;
@@ -28,14 +28,16 @@ export const NewFormFullPage = ({
28
28
classSubject,
29
29
} : NewFormProps ) : JSX . Element => {
30
30
const klass = useResource ( classSubject ) ;
31
- const [ subject , setSubject ] = useQueryString ( ' newSubject' ) ;
32
- const [ parentSubject ] = useQueryString ( ' parent' ) ;
31
+ const [ subject , setSubject ] = useQueryString ( newURLParams . newSubject ) ;
32
+ const [ parent ] = useQueryString ( newURLParams . parent ) ;
33
33
34
34
const { subjectErr, subjectValue, setSubjectValue, resource } = useNewForm (
35
35
klass ,
36
- subject ! ,
36
+ subject
37
+ ? subject
38
+ : `${ parent } /${ Math . random ( ) . toString ( 36 ) . substring ( 2 , 9 ) } ` ,
37
39
setSubject ,
38
- parentSubject ,
40
+ parent ,
39
41
) ;
40
42
41
43
return (
Original file line number Diff line number Diff line change @@ -66,6 +66,13 @@ export function useSearchQuery() {
66
66
return useQueryString ( 'query' ) ;
67
67
}
68
68
69
+ /** Query parameters used by the `/new` route */
70
+ export const newURLParams = {
71
+ classSubject : 'classSubject' ,
72
+ parent : 'parent' ,
73
+ newSubject : 'newSubject' ,
74
+ } ;
75
+
69
76
/** Constructs a URL for the New Resource form */
70
77
export function newURL (
71
78
classUrl : string ,
@@ -74,9 +81,9 @@ export function newURL(
74
81
) : string {
75
82
const navTo = new URL ( location . origin ) ;
76
83
navTo . pathname = paths . new ;
77
- navTo . searchParams . append ( ' classSubject' , classUrl ) ;
78
- parentURL && navTo . searchParams . append ( ' parent' , parentURL ) ;
79
- subject && navTo . searchParams . append ( ' newSubject' , subject ) ;
84
+ navTo . searchParams . append ( newURLParams . classSubject , classUrl ) ;
85
+ parentURL && navTo . searchParams . append ( newURLParams . parent , parentURL ) ;
86
+ subject && navTo . searchParams . append ( newURLParams . newSubject , subject ) ;
80
87
81
88
return paths . new + navTo . search ;
82
89
}
You can’t perform that action at this time.
0 commit comments