@@ -14,16 +14,23 @@ import SelectWorkspaceClassComponent from "../components/SelectWorkspaceClassCom
14
14
import { UserContext } from "../user-context" ;
15
15
import { StartWorkspaceModalContext } from "./start-workspace-modal-context" ;
16
16
17
- export function StartWorkspaceModal ( ) {
17
+ export interface StartWorkspaceProps {
18
+ uselatestIde ?: boolean ;
19
+ ide ?: string ;
20
+ workspaceClass ?: string ;
21
+ contextUrl ?: string ;
22
+ }
23
+
24
+ export function StartWorkspaceModal ( props : StartWorkspaceProps ) {
18
25
const { user } = useContext ( UserContext ) ;
19
26
const { isStartWorkspaceModalVisible, setIsStartWorkspaceModalVisible } = useContext ( StartWorkspaceModalContext ) ;
20
27
const location = useLocation ( ) ;
21
28
const [ useLatestIde , setUseLatestIde ] = useState < boolean | undefined > (
22
- ! ! user ?. additionalData ?. ideSettings ?. useLatestVersion ,
29
+ props . uselatestIde || ! ! user ?. additionalData ?. ideSettings ?. useLatestVersion ,
23
30
) ;
24
- const [ selectedIde , setSelectedIde ] = useState ( user ?. additionalData ?. ideSettings ?. defaultIde ) ;
25
- const [ selectedWsClass , setSelectedWsClass ] = useState < string | undefined > ( ) ;
26
- const [ repo , setRepo ] = useState < string | undefined > ( undefined ) ;
31
+ const [ selectedIde , setSelectedIde ] = useState ( props . ide || user ?. additionalData ?. ideSettings ?. defaultIde ) ;
32
+ const [ selectedWsClass , setSelectedWsClass ] = useState < string | undefined > ( props . workspaceClass ) ;
33
+ const [ repo , setRepo ] = useState < string | undefined > ( props . contextUrl ) ;
27
34
const onSelectEditorChange = useCallback (
28
35
( ide : string , useLatest : boolean ) => {
29
36
setSelectedIde ( ide ) ;
@@ -59,10 +66,18 @@ export function StartWorkspaceModal() {
59
66
60
67
useEffect ( ( ) => {
61
68
// reset state when visibility changes.
62
- setSelectedIde ( user ?. additionalData ?. ideSettings ?. defaultIde ) ;
63
- setUseLatestIde ( ! ! user ?. additionalData ?. ideSettings ?. useLatestVersion ) ;
64
- setRepo ( undefined ) ;
65
- } , [ user , setSelectedIde , setUseLatestIde , isStartWorkspaceModalVisible ] ) ;
69
+ setSelectedIde ( props . ide || user ?. additionalData ?. ideSettings ?. defaultIde ) ;
70
+ setUseLatestIde ( props . uselatestIde || ! ! user ?. additionalData ?. ideSettings ?. useLatestVersion ) ;
71
+ setRepo ( props . contextUrl ) ;
72
+ } , [
73
+ user ,
74
+ setSelectedIde ,
75
+ setUseLatestIde ,
76
+ isStartWorkspaceModalVisible ,
77
+ props . ide ,
78
+ props . uselatestIde ,
79
+ props . contextUrl ,
80
+ ] ) ;
66
81
67
82
return (
68
83
< Modal
0 commit comments