@@ -16,16 +16,30 @@ import { WorkFolderField } from "./WorkFolderField";
1616
1717const MODELS : BotModel [ ] = [ "default" , "fable" , "opus" , "sonnet" , "haiku" ] ;
1818
19- /** Creates a crew with its chief, or renames `crew`. */
20- export function CrewDialog ( { crew, onClose } : { crew ?: Crew ; onClose ( ) : void } ) {
19+ /**
20+ * Creates a crew with its chief, or renames `crew`. `start` opens a new crew
21+ * already on that template, as when the owner taps an idea on the welcome
22+ * screen.
23+ */
24+ export function CrewDialog ( {
25+ crew,
26+ start,
27+ onClose,
28+ } : {
29+ crew ?: Crew ;
30+ start ?: CrewTemplate | undefined ;
31+ onClose ( ) : void ;
32+ } ) {
2133 const t = useT ( ) ;
2234 const api = useApi ( ) ;
2335 const putCrew = useApp ( ( state ) => state . putCrew ) ;
2436 const selectCrew = useApp ( ( state ) => state . selectCrew ) ;
25- const [ name , setName ] = useState ( crew ?. name ?? "" ) ;
37+ const [ name , setName ] = useState (
38+ crew ?. name ?? ( start ? t . crewTemplates . items [ start . id ] . name : "" ) ,
39+ ) ;
2640 const [ color , setColor ] = useState < string | null > ( crew ?. color ?? null ) ;
2741 const [ folder , setFolder ] = useState < string | null > ( null ) ;
28- const [ goal , setGoal ] = useState ( "" ) ;
42+ const [ goal , setGoal ] = useState ( start ? t . crewTemplates . items [ start . id ] . goal : "" ) ;
2943 const [ chiefModel , setChiefModel ] = useState < BotModel > ( "default" ) ;
3044 const selectBot = useApp ( ( state ) => state . selectBot ) ;
3145 const putBot = useApp ( ( state ) => state . putBot ) ;
@@ -34,7 +48,7 @@ export function CrewDialog({ crew, onClose }: { crew?: Crew; onClose(): void })
3448 // A new crew starts from a template (spec 29.1) when the catalog loaded:
3549 // `undefined` is the list of templates, `null` an empty crew.
3650 const { roles, failed : catalogFailed } = useCatalog ( ! crew ) ;
37- const [ template , setTemplate ] = useState < CrewTemplate | null | undefined > ( undefined ) ;
51+ const [ template , setTemplate ] = useState < CrewTemplate | null | undefined > ( start ) ;
3852 const loading = ! crew && roles === null && ! catalogFailed ;
3953 const choosing = ! crew && template === undefined && roles !== null ;
4054
0 commit comments