Add a keyboard-driven project setup flow (#2097)
* feat(projects): add keyboard-driven project setup * test(app): update add project loading assertion * fix(projects): harden GitHub project setup
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import { create } from "zustand";
|
||||
|
||||
export interface AddProjectFlowRequest {
|
||||
id: number;
|
||||
preferredHostId?: string;
|
||||
}
|
||||
|
||||
interface AddProjectFlowStoreState {
|
||||
request: AddProjectFlowRequest | null;
|
||||
open: (preferredHostId?: string) => void;
|
||||
close: () => void;
|
||||
}
|
||||
|
||||
let nextRequestId = 1;
|
||||
|
||||
export const useAddProjectFlowStore = create<AddProjectFlowStoreState>((set) => ({
|
||||
request: null,
|
||||
open: (preferredHostId) => {
|
||||
set({
|
||||
request: {
|
||||
id: nextRequestId++,
|
||||
...(preferredHostId ? { preferredHostId } : {}),
|
||||
},
|
||||
});
|
||||
},
|
||||
close: () => set({ request: null }),
|
||||
}));
|
||||
@@ -1,17 +0,0 @@
|
||||
import { create } from "zustand";
|
||||
|
||||
interface ProjectPickerRequest {
|
||||
serverId: string;
|
||||
}
|
||||
|
||||
interface ProjectPickerStoreState {
|
||||
request: ProjectPickerRequest | null;
|
||||
open: (serverId: string) => void;
|
||||
close: () => void;
|
||||
}
|
||||
|
||||
export const useProjectPickerStore = create<ProjectPickerStoreState>((set) => ({
|
||||
request: null,
|
||||
open: (serverId) => set({ request: { serverId } }),
|
||||
close: () => set({ request: null }),
|
||||
}));
|
||||
Reference in New Issue
Block a user