1
0
mirror of https://github.com/amir20/dozzle.git synced 2025-12-31 10:07:22 +01:00
Files
dozzle/assets/stores/pinned.ts

28 lines
915 B
TypeScript

import { acceptHMRUpdate, defineStore } from "pinia";
import { Ref } from "vue";
export const usePinnedLogsStore = defineStore("pinnedLogs", () => {
const containerStore = useContainerStore();
const { allContainersById } = storeToRefs(containerStore);
const pinnedContainerIds: Ref<string[]> = ref([]);
const pinnedLogs = computed(() => pinnedContainerIds.value.map((id) => allContainersById.value[id]));
const pinContainer = ({ id }: { id: string }) => pinnedContainerIds.value.push(id);
const unPinContainer = ({ id }: { id: string }) =>
pinnedContainerIds.value.splice(pinnedContainerIds.value.indexOf(id), 1);
const isPinned = ({ id }: { id: string }) => pinnedContainerIds.value.includes(id);
return {
pinnedLogs,
isPinned,
pinContainer,
unPinContainer,
};
});
if (import.meta.hot) {
import.meta.hot.accept(acceptHMRUpdate(usePinnedLogsStore, import.meta.hot));
}