REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 1.88 KB
Close
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/extendify_old/src/Shared/state/generate-images.js
Text
Base64
import { safeParseJson } from '@shared/lib/parsing'; import apiFetch from '@wordpress/api-fetch'; import { create } from 'zustand'; import { createJSONStorage, devtools, persist } from 'zustand/middleware'; const path = '/extendify/v1/shared/image-generation'; const storage = { getItem: async () => await apiFetch({ path }), setItem: async (_name, state) => await apiFetch({ path, method: 'POST', data: { state } }), }; // Values added here should also be added to Admin.php ln ~200 const startingState = { aiImageOptions: { prompt: '', size: '1024x1024', }, imageCredits: { remaining: 10, total: 10, refresh: undefined, }, }; const store = (set) => ({ ...startingState, ...safeParseJson(window.extSharedData?.globalState)?.state, updateImageCredits({ remaining, total, refresh }) { set((state) => ({ imageCredits: { ...state.imageCredits, // Only update truthy values ...(remaining && { remaining }), ...(total && { total }), ...(refresh && { refresh }), }, })); }, subtractOneCredit() { set((state) => ({ imageCredits: { ...state.imageCredits, remaining: state.imageCredits.remaining - 1, // set to 24 hours from now (in ms) refresh: new Date(Date.now() + 24 * 60 * 60 * 1000).getTime(), }, })); }, resetImageCredits() { set({ imageCredits: startingState.imageCredits }); }, setAiImageOption(option, value) { set((state) => ({ aiImageOptions: { ...state.aiImageOptions, [option]: value }, })); }, }); const withDevtools = devtools(store, { name: 'Extendify Image Generation' }); const withPersist = persist(withDevtools, { name: 'extendify_image_generation', storage: createJSONStorage(() => storage), skipHydration: true, partialize: (state) => { // Remove the prompt return { ...state, aiImageOptions: { ...state.aiImageOptions, prompt: '' }, }; }, }); export const useImageGenerationStore = create(withPersist);
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 5
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
__tests__
DIR
-
drwxr-xr-x
2026-04-28 02:40:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
activity.js
1.22 KB
lrw-r--r--
2026-02-19 03:27:14
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ai-consent.js
1.53 KB
lrw-r--r--
2025-12-17 19:09:10
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
generate-images.js
1.88 KB
lrw-r--r--
2026-02-19 03:27:14
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
site-profile.js
914 B
lrw-r--r--
2026-02-27 04:48:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
unsplash-cache.js
661 B
lrw-r--r--
2026-02-19 03:27:14
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).