update: websocket
- enable save button in overview Signed-off-by: pakintada@gmail.com <Pakin>
This commit is contained in:
parent
a29ff0be1a
commit
a0637c7d72
3 changed files with 37 additions and 18 deletions
|
|
@ -22,11 +22,14 @@
|
||||||
import { auth } from '$lib/core/stores/auth';
|
import { auth } from '$lib/core/stores/auth';
|
||||||
import { isUserAdmin } from '$lib/core/admin/adminService';
|
import { isUserAdmin } from '$lib/core/admin/adminService';
|
||||||
import { referenceFromPage } from '$lib/core/stores/recipeStore';
|
import { referenceFromPage } from '$lib/core/stores/recipeStore';
|
||||||
|
import { env } from '$env/dynamic/public';
|
||||||
|
|
||||||
let sideBar: HTMLElement | null = $state(null);
|
let sideBar: HTMLElement | null = $state(null);
|
||||||
let isSideBarOpen: boolean = $state(true);
|
let isSideBarOpen: boolean = $state(true);
|
||||||
let isAdmin: boolean = $state(false);
|
let isAdmin: boolean = $state(false);
|
||||||
|
|
||||||
|
const app_version = env.PUBLIC_APP_VERSION;
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
navMain: [
|
navMain: [
|
||||||
{
|
{
|
||||||
|
|
@ -134,16 +137,17 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
let authorizedNavMain = $derived(
|
let authorizedNavMain = $derived(
|
||||||
data.navMain.map(nav => {
|
data.navMain
|
||||||
const filteredItems = nav.items.filter(item => {
|
.map((nav) => {
|
||||||
if (!item.requirePerm) return true;
|
const filteredItems = nav.items.filter((item) => {
|
||||||
|
if (!item.requirePerm) return true;
|
||||||
|
|
||||||
return needPermission(item.requirePerm);
|
return needPermission(item.requirePerm);
|
||||||
});
|
});
|
||||||
|
|
||||||
return { ...nav, items: filteredItems };
|
return { ...nav, items: filteredItems };
|
||||||
|
})
|
||||||
}).filter(nav => nav.items.length > 0)
|
.filter((nav) => nav.items.length > 0)
|
||||||
);
|
);
|
||||||
|
|
||||||
let {
|
let {
|
||||||
|
|
@ -160,6 +164,9 @@
|
||||||
<TaobinLogo size={isSideBarOpen ? 96 : 24} fillColor={'#FFFFFF'} />
|
<TaobinLogo size={isSideBarOpen ? 96 : 24} fillColor={'#FFFFFF'} />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<p class="justify-center text-center font-mono text-[8px] text-muted-foreground">
|
||||||
|
{app_version ?? ''}
|
||||||
|
</p>
|
||||||
</Sidebar.Header>
|
</Sidebar.Header>
|
||||||
<Sidebar.Content>
|
<Sidebar.Content>
|
||||||
{#each authorizedNavMain as nav}
|
{#each authorizedNavMain as nav}
|
||||||
|
|
|
||||||
|
|
@ -213,17 +213,15 @@
|
||||||
<Tabs.Trigger value="info">Info</Tabs.Trigger>
|
<Tabs.Trigger value="info">Info</Tabs.Trigger>
|
||||||
<Tabs.Trigger value="details">Details</Tabs.Trigger>
|
<Tabs.Trigger value="details">Details</Tabs.Trigger>
|
||||||
</Tabs.List>
|
</Tabs.List>
|
||||||
{#if refPage === 'brew'}
|
<div>
|
||||||
<div>
|
<Button type="button" variant="default" onclick={() => saveRecipe()}>Save</Button>
|
||||||
<Button type="button" variant="default" onclick={() => saveRecipe()}>Save</Button>
|
|
||||||
|
|
||||||
{#if $machineInfoStore?.status == 'IDLE' || $machineInfoStore?.status == ''}
|
{#if refPage === 'brew' && ($machineInfoStore?.status == 'IDLE' || $machineInfoStore?.status == '')}
|
||||||
<Button type="button" variant="default" onclick={async () => sendTriggerBrewNow()}
|
<Button type="button" variant="default" onclick={async () => sendTriggerBrewNow()}
|
||||||
>Test Brew</Button
|
>Test Brew</Button
|
||||||
>
|
>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Tabs.Content value="info">
|
<Tabs.Content value="info">
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,10 @@ export function connectToWebsocket() {
|
||||||
if (browser) {
|
if (browser) {
|
||||||
// console.log('connecting to ', env.PUBLIC_WSS);
|
// console.log('connecting to ', env.PUBLIC_WSS);
|
||||||
try {
|
try {
|
||||||
|
if (socket != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
socket = new WebSocket(`${env.PUBLIC_WSS}`);
|
socket = new WebSocket(`${env.PUBLIC_WSS}`);
|
||||||
|
|
||||||
socket.addEventListener('open', () => {
|
socket.addEventListener('open', () => {
|
||||||
|
|
@ -62,6 +66,16 @@ export function connectToWebsocket() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, 10000);
|
}, 10000);
|
||||||
|
|
||||||
|
if (auth.currentUser && socket == null) {
|
||||||
|
console.log('try reconnect websocket ...');
|
||||||
|
// retry again
|
||||||
|
setTimeout(() => {
|
||||||
|
if (socket == null) {
|
||||||
|
connectToWebsocket();
|
||||||
|
}
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.addEventListener('message', (event) => {
|
socket.addEventListener('message', (event) => {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue