0 && providers.paid().length === 0),
+ hidden: store().gettingStartedDismissed || !(providers.all().size > 0 && providers.paid().length === 0),
}}
>
@@ -2217,7 +2217,7 @@ export default function LegacyLayout(props: ParentProps) {
}
const projects = () => layout.projects.list()
- const projectOverlay = () =>
store.activeProject} />
+ const projectOverlay = () => store().activeProject} />
const sidebarContent = (mobile?: boolean) => (
failed: Record
@@ -1614,19 +1614,19 @@ export default function Page() {
const queuedFollowups = createMemo(() => {
const id = params.id
if (!id) return emptyFollowups
- return followup.items[id] ?? emptyFollowups
+ return followup().items[id] ?? emptyFollowups
})
const editingFollowup = createMemo(() => {
const id = params.id
if (!id) return
- return followup.edit[id]
+ return followup().edit[id]
})
const followupMutation = useMutation(() => ({
mutationFn: async (input: { sessionID: string; id: string; manual?: boolean }) => {
const owner = sessionOwnership.capture()
- const item = (followup.items[input.sessionID] ?? []).find((entry) => entry.id === input.id)
+ const item = (followup().items[input.sessionID] ?? []).find((entry) => entry.id === input.id)
if (!item) return
if (input.manual) setFollowup("paused", input.sessionID, undefined)
@@ -1696,7 +1696,7 @@ export default function Page() {
const sendFollowup = (sessionID: string, id: string, opts?: { manual?: boolean }) => {
if (sync().session.get(sessionID)?.parentID) return Promise.resolve()
- const item = (followup.items[sessionID] ?? []).find((entry) => entry.id === id)
+ const item = (followup().items[sessionID] ?? []).find((entry) => entry.id === id)
if (!item) return Promise.resolve()
if (followupBusy(sessionID)) return Promise.resolve()
@@ -1818,8 +1818,8 @@ export default function Page() {
const item = queuedFollowups()[0]
if (!item) return
if (followupBusy(sessionID)) return
- if (followup.failed[sessionID] === item.id) return
- if (followup.paused[sessionID]) return
+ if (followup().failed[sessionID] === item.id) return
+ if (followup().paused[sessionID]) return
if (isChildSession()) return
if (composer.blocked()) return
if (busy(sessionID)) return
diff --git a/packages/app/src/pages/session/usage-exceeded-dialogs.tsx b/packages/app/src/pages/session/usage-exceeded-dialogs.tsx
index d56fa3d1f4..cafad10538 100644
--- a/packages/app/src/pages/session/usage-exceeded-dialogs.tsx
+++ b/packages/app/src/pages/session/usage-exceeded-dialogs.tsx
@@ -61,9 +61,9 @@ export function useUsageExceededDialogs() {
const keys = goUpsellKeys(evt.properties.status)
if (!keys) return
- const seen = goUpsellState[keys.lastSeenAt]
+ const seen = goUpsellState()[keys.lastSeenAt]
if (seen && Date.now() - seen < GO_UPSELL_WINDOW) return
- if (goUpsellState[keys.dontShow]) return
+ if (goUpsellState()[keys.dontShow]) return
if (action.reason === "free_tier_limit") {
dialog.show(() => (
diff --git a/packages/app/src/pages/session/v2/review-panel-v2-state.ts b/packages/app/src/pages/session/v2/review-panel-v2-state.ts
index d5894bfb69..ebd559d5d0 100644
--- a/packages/app/src/pages/session/v2/review-panel-v2-state.ts
+++ b/packages/app/src/pages/session/v2/review-panel-v2-state.ts
@@ -22,11 +22,11 @@ export function createReviewPanelV2State() {
const [filter, setFilter] = createSignal("")
return {
- sidebarOpened: () => store.sidebarOpened,
- sidebarWidth: () => store.sidebarWidth,
+ sidebarOpened: () => store().sidebarOpened,
+ sidebarWidth: () => store().sidebarWidth,
filter,
setFilter,
- expandMode: () => store.expandMode,
+ expandMode: () => store().expandMode,
setExpandMode: (mode: SessionReviewExpandMode) => setStore("expandMode", mode),
resizeSidebar: (width: number) =>
setStore(
diff --git a/packages/app/src/utils/persist.ts b/packages/app/src/utils/persist.ts
index 671b798f61..66535d3674 100644
--- a/packages/app/src/utils/persist.ts
+++ b/packages/app/src/utils/persist.ts
@@ -6,11 +6,9 @@ import type { SetStoreFunction, Store } from "solid-js/store"
import { pathKey } from "@/utils/path-key"
import { ScopedKey, ServerScope, type ServerScope as ServerScopeValue } from "@/utils/server-scope"
-type InitType = Promise | string | null
type PersistedWithReady = [
- Store,
+ Accessor,
SetStoreFunction,
- InitType,
Accessor & { promise: undefined | Promise },
]
@@ -641,20 +639,20 @@ export function persisted(
const [state, setState, init] = makePersisted(store, { name: config.key, storage })
const isAsync = init instanceof Promise
- const [ready] = createResource(
+
+ const [storeResource] = createResource(
() => init,
- async (initValue) => {
- if (initValue instanceof Promise) await initValue
- return true
+ async () => {
+ if (init instanceof Promise) await init
+ return state
},
- { initialValue: !isAsync },
+ { initialValue: state },
)
return [
- state,
+ () => storeResource() as T,
setState,
- init,
- Object.assign(() => (ready.loading ? false : ready.latest === true), {
+ Object.assign(() => !isAsync || !storeResource.loading, {
promise: init instanceof Promise ? init : undefined,
}),
]