Skip to content

Commit

Permalink
allow persist server settings
Browse files Browse the repository at this point in the history
  • Loading branch information
Nanguage committed Mar 14, 2024
1 parent 2dd25cb commit 0c0e10a
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 13 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"lodash": "^4.17.21",
"npyjs": "^0.5.0",
"pinia": "^2.1.7",
"pinia-plugin-persistedstate": "^3.2.1",
"primevue": "^3.43.0",
"vue": "^3.3.11"
},
Expand Down
11 changes: 11 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/components/AdvanceSetting.vue
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,12 @@

<script>
import { watch, ref } from 'vue'
import { useStore } from '../stores/global'
import { useServerStore } from '../stores/server'
import { useParametersStore } from '../stores/parameters'
export default {
setup() {
const store = useStore()
const store = useServerStore()
const parametersStore = useParametersStore()
const serverURL = ref(store.serverUrl)
const serviceId = ref(store.serviceId)
Expand Down
11 changes: 5 additions & 6 deletions src/components/RunPanel.vue
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ import { ModelRunner } from "../modelRun";
import { ImagejJsController } from "../viewerControl";
import { useStore } from "../stores/global";
import { useRunStore } from "../stores/run";
import { useServerStore } from "../stores/server";
import { useParametersStore } from "../stores/parameters";
Expand All @@ -115,6 +116,7 @@ export default {
setup: () => {
const store = useStore();
const runStore = useRunStore();
const serverStore = useServerStore();
const newIjWindow = ref(true)
const waiting = ref(false);
Expand Down Expand Up @@ -245,19 +247,16 @@ export default {
)
watch(
() => (store.serverUrl, store.serviceId),
() => (serverStore.serverUrl, serverStore.serviceId),
async () => {
const store = useStore();
const serverStore = useServerStore();
const runStore = useRunStore();
store.$patch({
serverUrl: store.serverUrl,
serviceId: store.serviceId,
});
const oldModelId = store.runner.modelId;
setInfoPanel("Initializing server...", true);
turnButtons(false);
try {
const runner = new ModelRunner(store.serverUrl, store.serviceId);
const runner = new ModelRunner(serverStore.serverUrl, serverStore.serviceId);
await runner.init();
await initModel(oldModelId, runner);
store.$patch({
Expand Down
10 changes: 7 additions & 3 deletions src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ import InputNumber from "primevue/inputnumber";
import Dropdown from "primevue/dropdown";
import InputText from "primevue/inputtext";
import "primevue/resources/themes/saga-blue/theme.css";
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

import App from "./App.vue";
import { useStore } from "./stores/global";
import { useParametersStore } from "./stores/parameters";
import { useServerStore } from "./stores/server";
import { setupStoreWatcher } from "./watcher";
import { useRunStore, waitState, waitRunable } from "./stores/run";

Expand Down Expand Up @@ -165,14 +167,14 @@ async function createImjoyApi(api) {
await waitRunable();
}
async function setServerSetting(serverUrl, serviceId) {
const globalStore = window.app.store.global;
const serverStore = window.app.store.server;
const runStore = window.app.store.run;
runStore.$patch({ serverInitialized: false });
if ((globalStore.serverUrl === serverUrl) && (globalStore.serviceId === serviceId)) {
if ((serverStore.serverUrl === serverUrl) && (serverStore.serviceId === serviceId)) {
runStore.$patch({ serverInitialized: true });
return;
}
globalStore.$patch({
serverStore.$patch({
serverUrl: serverUrl,
serviceId: serviceId,
});
Expand Down Expand Up @@ -217,13 +219,15 @@ app.component("Dropdown", Dropdown);
app.component("InputText", InputText);

const pinia = createPinia();
pinia.use(piniaPluginPersistedstate);
app.use(pinia);
app.mount("#app");

window.app.vue = app;

window.app.store = {
global: useStore(),
server: useServerStore(),
parameters: useParametersStore(),
run: useRunStore(),
};
Expand Down
2 changes: 0 additions & 2 deletions src/stores/global.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ import { loadCellposeRdf } from "../utils";

export const useStore = defineStore("store", {
state: () => ({
serverUrl: "https://ai.imjoy.io",
serviceId: "triton-client",
runner: null,
viewerControl: null,
models: [],
Expand Down
10 changes: 10 additions & 0 deletions src/stores/server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

import { defineStore } from "pinia";

export const useServerStore = defineStore("server", {
state: () => ({
serverUrl: "https://ai.imjoy.io",
serviceId: "triton-client",
}),
persist: true,
});

0 comments on commit 0c0e10a

Please sign in to comment.