diff --git a/src/AppMobile.svelte b/src/AppMobile.svelte index 85de615..5de223d 100644 --- a/src/AppMobile.svelte +++ b/src/AppMobile.svelte @@ -9,14 +9,16 @@ import "framework7/css/bundle" import "./scss/global.scss"; + import MainToolbar from './mobile/MainToolbar.svelte' import GenToolbar from './mobile/GenToolbar.svelte' - import HomePage from './mobile/routes/home.svelte'; + import WorkflowsPage from './mobile/routes/workflows.svelte'; import AboutPage from './mobile/routes/about.svelte'; import LoginPage from './mobile/routes/login.svelte'; import GraphPage from './mobile/routes/graph.svelte'; import WorkflowPage from './mobile/routes/workflow.svelte'; import type { Framework7Parameters, Modal } from "framework7/types"; + import interfaceState from "$lib/stores/interfaceState"; export let app: ComfyApp; @@ -82,7 +84,14 @@ routes: [ { path: '/', - component: HomePage, + component: WorkflowsPage, + options: { + props: { app } + } + }, + { + path: '/workflows', + component: WorkflowsPage, options: { props: { app } } @@ -138,14 +147,17 @@ {:then} - + + {#if $interfaceState.selectedWorkflowID && $interfaceState.showingWorkflow} + + {/if} {:catch error}
diff --git a/src/lib/stores/interfaceState.ts b/src/lib/stores/interfaceState.ts index c792dd5..61c43dc 100644 --- a/src/lib/stores/interfaceState.ts +++ b/src/lib/stores/interfaceState.ts @@ -1,6 +1,7 @@ import { debounce } from '$lib/utils'; import { get, writable } from 'svelte/store'; import type { Readable, Writable } from 'svelte/store'; +import type { WorkflowInstID } from './workflowState'; export type InterfaceState = { // Show a large indicator of the currently editing number value for mobile @@ -10,8 +11,11 @@ export type InterfaceState = { showIndicator: boolean, indicatorValue: any, - graphTransitioning: boolean - isJumpingToNode: boolean + graphTransitioning: boolean, + isJumpingToNode: boolean, + + selectedWorkflowID: WorkflowInstID | null + showingWorkflow: boolean } type InterfaceStateOps = { @@ -28,6 +32,9 @@ const store: Writable = writable( graphTransitioning: false, isJumpingToNode: false, + + selectedWorkflowID: null, + showingWorkflow: false }) const debounceDrag = debounce(() => { store.update(s => { s.showIndicator = false; return s }) }, 1000) diff --git a/src/mobile/GenToolbar.svelte b/src/mobile/GenToolbar.svelte index ded4825..6112ac1 100644 --- a/src/mobile/GenToolbar.svelte +++ b/src/mobile/GenToolbar.svelte @@ -3,13 +3,14 @@ import queueState from "$lib/stores/queueState"; import workflowState, { ComfyBoxWorkflow } from "$lib/stores/workflowState"; import { getNodeInfo } from "$lib/utils" + import { Image, LayoutTextSidebarReverse } from "svelte-bootstrap-icons"; import { Link, Toolbar } from "framework7-svelte" import ProgressBar from "$lib/components/ProgressBar.svelte"; import Progressbar from "$lib/components/f7/progressbar.svelte"; - import Indicator from "./Indicator.svelte"; - import interfaceState from "$lib/stores/interfaceState"; - import type { WritableLayoutStateStore } from "$lib/stores/layoutStates"; + import Indicator from "./Indicator.svelte"; + import interfaceState from "$lib/stores/interfaceState"; + import type { WritableLayoutStateStore } from "$lib/stores/layoutStates"; export let subworkflowID: number = -1; export let app: ComfyApp = undefined; @@ -74,31 +75,21 @@ progressText = "??.?%" } + let centerHref = "/workflows/" + $: if ($interfaceState.selectedWorkflowID) { + centerHref = `/workflows/${$interfaceState.selectedWorkflowID}/` + } + else { + centerHref = "/workflows/"; + } + -
-
- {#if queued} -
- Node: {getNodeInfo($queueState.runningNodeID)} ({progressText}) -
- {/if} -
-
- {#if queued} - {#if progress} - - {:else if running} - - {/if} - {/if} -
-
- + {#if workflow != null && workflow.attrs.queuePromptButtonName != ""} {workflow.attrs.queuePromptButtonName} - + {/if} 🔄 Save @@ -106,56 +97,9 @@ Load -{#if $interfaceState.showIndicator} - -{/if} diff --git a/src/mobile/MainToolbar.svelte b/src/mobile/MainToolbar.svelte new file mode 100644 index 0000000..0d32306 --- /dev/null +++ b/src/mobile/MainToolbar.svelte @@ -0,0 +1,167 @@ + + +
+
+ {#if queued} +
+ Node: {getNodeInfo($queueState.runningNodeID)} ({progressText}) +
+ {/if} +
+
+ {#if queued} + {#if progress} + + {:else if running} + + {/if} + {/if} +
+
+ + Tab 1 + + + +{#if $interfaceState.showIndicator} + +{/if} + + diff --git a/src/mobile/routes/list-subworkflows.svelte b/src/mobile/routes/list-subworkflows.svelte deleted file mode 100644 index 1e2138a..0000000 --- a/src/mobile/routes/list-subworkflows.svelte +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - diff --git a/src/mobile/routes/workflow.svelte b/src/mobile/routes/workflow.svelte index 908839c..b1909d0 100644 --- a/src/mobile/routes/workflow.svelte +++ b/src/mobile/routes/workflow.svelte @@ -1,10 +1,13 @@ - - + + + + {title} + + + + {#if workflow} {#if root} diff --git a/src/mobile/routes/home.svelte b/src/mobile/routes/workflows.svelte similarity index 82% rename from src/mobile/routes/home.svelte rename to src/mobile/routes/workflows.svelte index ec7fe31..9899647 100644 --- a/src/mobile/routes/home.svelte +++ b/src/mobile/routes/workflows.svelte @@ -1,6 +1,8 @@ - + {#if $workflowState.openedWorkflows} {#each $workflowState.openedWorkflows as workflow} - +
onClickDelete(workflow, e)}>