| import { atom } from 'recoil'; |
| import { logger } from '~/utils'; |
| import type { Artifact } from '~/common'; |
|
|
| export const artifactsState = atom<Record<string, Artifact | undefined> | null>({ |
| key: 'artifactsState', |
| default: null, |
| effects: [ |
| ({ onSet, node }) => { |
| onSet(async (newValue) => { |
| logger.log('artifacts', 'Recoil Effect: Setting artifactsState', { |
| key: node.key, |
| newValue, |
| }); |
| }); |
| }, |
| ] as const, |
| }); |
|
|
| export const currentArtifactId = atom<string | null>({ |
| key: 'currentArtifactId', |
| default: null, |
| effects: [ |
| ({ onSet, node }) => { |
| onSet(async (newValue) => { |
| logger.log('artifacts', 'Recoil Effect: Setting currentArtifactId', { |
| key: node.key, |
| newValue, |
| }); |
| }); |
| }, |
| ] as const, |
| }); |
|
|
| export const artifactsVisibility = atom<boolean>({ |
| key: 'artifactsVisibility', |
| default: true, |
| effects: [ |
| ({ onSet, node }) => { |
| onSet(async (newValue) => { |
| logger.log('artifacts', 'Recoil Effect: Setting artifactsVisibility', { |
| key: node.key, |
| newValue, |
| }); |
| }); |
| }, |
| ] as const, |
| }); |
|
|
| export const visibleArtifacts = atom<Record<string, Artifact | undefined> | null>({ |
| key: 'visibleArtifacts', |
| default: null, |
| effects: [ |
| ({ onSet, node }) => { |
| onSet(async (newValue) => { |
| logger.log('artifacts', 'Recoil Effect: Setting `visibleArtifacts`', { |
| key: node.key, |
| newValue, |
| }); |
| }); |
| }, |
| ] as const, |
| }); |
|
|