12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { defineStore } from "pinia";
- export const useLongJobsStore = defineStore("longJobs", {
- state: (): {
- activeJobs: {
- id: string;
- name: string;
- status: string;
- message: string;
- }[];
- removedJobIds: string[];
- } => ({
- activeJobs: [],
- removedJobIds: []
- }),
- actions: {
- setJob({ id, name, status, message }) {
- if (this.removedJobIds.indexOf(id) === -1)
- if (!this.activeJobs.find(activeJob => activeJob.id === id))
- this.activeJobs.push({
- id,
- name,
- status,
- message
- });
- else
- this.activeJobs.forEach((activeJob, index) => {
- if (activeJob.id === id) {
- this.activeJobs[index] = {
- ...this.activeJobs[index],
- status,
- message
- };
- }
- });
- },
- setJobs(jobs) {
- this.activeJobs = jobs;
- },
- removeJob(jobId) {
- this.activeJobs.forEach((activeJob, index) => {
- if (activeJob.id === jobId) {
- this.activeJobs.splice(index, 1);
- this.removedJobIds.push(jobId);
- }
- });
- }
- }
- });
|