Function: selectCreateSite()
selectCreateSite(
state: {addMonitorToSite: (siteIdentifier:string,monitor:Monitor) =>Promise<void>;createSite: (siteData: {identifier:string;monitoring?:boolean;monitors?:Monitor[];name?:string; }) =>Promise<void>;deleteSite: (identifier:string) =>Promise<void>;downloadSqliteBackup: () =>Promise<SerializedDatabaseBackupResult>;removeMonitorFromSite: (siteIdentifier:string,monitorId:string) =>Promise<void>;restoreSqliteBackup: (payload:SerializedDatabaseRestorePayload) =>Promise<SerializedDatabaseRestoreResult>;saveSqliteBackup: () =>Promise<SerializedDatabaseBackupSaveResult>;updateMonitorRetryAttempts: (siteIdentifier:string,monitorId:string,retryAttempts:number|undefined) =>Promise<void>;updateMonitorTimeout: (siteIdentifier:string,monitorId:string,timeout:number|undefined) =>Promise<void>;updateSiteCheckInterval: (siteIdentifier:string,monitorId:string,interval:number) =>Promise<void>;checkSiteNow: (siteIdentifier:string,monitorId:string) =>Promise<void>;startSiteMonitoring: (siteIdentifier:string) =>Promise<void>;startSiteMonitorMonitoring: (siteIdentifier:string,monitorId:string) =>Promise<void>;stopSiteMonitoring: (siteIdentifier:string) =>Promise<void>;stopSiteMonitorMonitoring: (siteIdentifier:string,monitorId:string) =>Promise<void>;fullResyncSites: () =>Promise<void>;getSyncStatus: () =>Promise<{lastSyncAt?:number|null;siteCount:number;source:"cache"|"database"|"frontend"|"import"|"monitor-update";synchronized:boolean; }>;subscribeToSyncEvents: () => () =>void;syncSites: () =>Promise<void>;addSite: (site:Site) =>void;applySiteSnapshot: (site:Site) =>void;getSelectedMonitorId: (siteIdentifier:string) =>string|undefined;getSelectedSite: () =>Site|undefined;removeSite: (identifier:string) =>void;selectSite: (site:Site|undefined) =>void;setSelectedMonitorId: (siteIdentifier:string,monitorId:string) =>void;setSites: (sites:Site[]) =>void;setStatusSubscriptionSummary: (summary:StatusUpdateSubscriptionSummary|undefined) =>void;retryStatusSubscription: (callback?: (update:StatusUpdate) =>void) =>Promise<StatusUpdateSubscriptionSummary>;subscribeToStatusUpdates: (callback?: (update:StatusUpdate) =>void) =>Promise<StatusUpdateSubscriptionSummary>;unsubscribeFromStatusUpdates: () =>StatusUpdateUnsubscribeResult;initializeSites: () =>Promise<{message:string;sitesLoaded:number;success:boolean; }>;modifySite: (identifier:string,updates:Partial<Site>) =>Promise<void>;recordSiteSyncDelta: (delta:SiteSyncDelta|undefined) =>void;setLastBackupMetadata: (metadata:SerializedDatabaseBackupMetadata|undefined) =>void;lastBackupMetadata:SerializedDatabaseBackupMetadata|undefined;lastSyncDelta:SiteSyncDelta|undefined;optimisticMonitoringLocks:Partial<Record<string,OptimisticMonitoringLock>>;selectedMonitorIds:Partial<Record<Site["identifier"],Monitor["id"]>>;selectedSiteIdentifier:string|undefined;sites:Site[];sitesRevision:number;statusSubscriptionSummary:StatusUpdateSubscriptionSummary|undefined; }): (siteData: {identifier:string;monitoring?:boolean;monitors?:Monitor[];name?:string; }) =>Promise<void>
Defined in: src/stores/sites/selectors.ts:8
Selects the action used to create a site.
Parametersโ
stateโ
addMonitorToSiteโ
(siteIdentifier: string, monitor: Monitor) => Promise<void>
Add a monitor to an existing site
createSiteโ
(siteData: { identifier: string; monitoring?: boolean; monitors?: Monitor[]; name?: string; }) => Promise<void>
Create a new site
deleteSiteโ
(identifier: string) => Promise<void>
Delete a site
downloadSqliteBackupโ
() => Promise<SerializedDatabaseBackupResult>
Download SQLite backup
removeMonitorFromSiteโ
(siteIdentifier: string, monitorId: string) => Promise<void>
Remove a monitor from a site
restoreSqliteBackupโ
(payload: SerializedDatabaseRestorePayload) => Promise<SerializedDatabaseRestoreResult>
Restore SQLite backup
saveSqliteBackupโ
() => Promise<SerializedDatabaseBackupSaveResult>
Save SQLite backup via main process
updateMonitorRetryAttemptsโ
(siteIdentifier: string, monitorId: string, retryAttempts: number | undefined) => Promise<void>
Update monitor retry attempts
updateMonitorTimeoutโ
(siteIdentifier: string, monitorId: string, timeout: number | undefined) => Promise<void>
Update monitor timeout
updateSiteCheckIntervalโ
(siteIdentifier: string, monitorId: string, interval: number) => Promise<void>
Update site check interval
checkSiteNowโ
(siteIdentifier: string, monitorId: string) => Promise<void>
Check a site now
startSiteMonitoringโ
(siteIdentifier: string) => Promise<void>
Start monitoring for a site
startSiteMonitorMonitoringโ
(siteIdentifier: string, monitorId: string) => Promise<void>
Start monitoring for a specific site monitor
stopSiteMonitoringโ
(siteIdentifier: string) => Promise<void>
Stop monitoring for a site
stopSiteMonitorMonitoringโ
(siteIdentifier: string, monitorId: string) => Promise<void>
Stop monitoring for a specific site monitor
fullResyncSitesโ
() => Promise<void>
Full resync from backend
getSyncStatusโ
() => Promise<{ lastSyncAt?: number | null; siteCount: number; source: "cache" | "database" | "frontend" | "import" | "monitor-update"; synchronized: boolean; }>
Get sync status
subscribeToSyncEventsโ
() => () => void
Subscribe to sync events
syncSitesโ
() => Promise<void>
Sync sites from backend
addSiteโ
(site: Site) => void
Add a site to the store
applySiteSnapshotโ
(site: Site) => void
Apply a backend-provided (or otherwise authoritative) site snapshot to local state.
Remarks
This is a pure state mutation helper (replace-by-identifier). It is
intentionally named to avoid confusion with the IPC-backed
SiteService.updateSite(...) / sites.update-site mutation.
getSelectedMonitorIdโ
(siteIdentifier: string) => string | undefined
Get selected monitor ID for a site
getSelectedSiteโ
() => Site | undefined
Get the currently selected site
removeSiteโ
(identifier: string) => void
Remove a site from the store
selectSiteโ
(site: Site | undefined) => void
Select site
setSelectedMonitorIdโ
(siteIdentifier: string, monitorId: string) => void
Set selected monitor ID for a site
setSitesโ
(sites: Site[]) => void
Set all sites
setStatusSubscriptionSummaryโ
(summary: StatusUpdateSubscriptionSummary | undefined) => void
Persist subscription diagnostics
retryStatusSubscriptionโ
(callback?: (update: StatusUpdate) => void) => Promise<StatusUpdateSubscriptionSummary>
Retry status update subscription using the last known callback
subscribeToStatusUpdatesโ
(callback?: (update: StatusUpdate) => void) => Promise<StatusUpdateSubscriptionSummary>
Subscribe to status updates
unsubscribeFromStatusUpdatesโ
() => StatusUpdateUnsubscribeResult
Unsubscribe from status updates
initializeSitesโ
() => Promise<{ message: string; sitesLoaded: number; success: boolean; }>
Initialize sites data from backend
modifySiteโ
(identifier: string, updates: Partial<Site>) => Promise<void>
Modify an existing site
recordSiteSyncDeltaโ
(delta: SiteSyncDelta | undefined) => void
Record latest site synchronization delta information
setLastBackupMetadataโ
(metadata: SerializedDatabaseBackupMetadata | undefined) => void
Persist latest backup metadata for UI diagnostics
lastBackupMetadataโ
SerializedDatabaseBackupMetadata | undefined
Latest database backup metadata for UI display and diagnostics.
lastSyncDeltaโ
SiteSyncDelta | undefined
Most recent synchronization delta captured from state sync events.
optimisticMonitoringLocksโ
Partial<Record<string, OptimisticMonitoringLock>>
Active optimistic monitoring locks for monitors keyed by site and monitor id.
selectedMonitorIdsโ
Partial<Record<Site["identifier"], Monitor["id"]>>
Selected monitor IDs per site (UI state, not persisted)
selectedSiteIdentifierโ
string | undefined
Currently selected site identifier
sitesโ
Site[]
Array of monitored sites
sitesRevisionโ
number
Monotonic counter incremented whenever the sites collection changes.
Remarks
Used to detect and prevent stale full-sync responses from overwriting newer local mutations (e.g., user creates a site while an initial sync is still in-flight).
statusSubscriptionSummaryโ
StatusUpdateSubscriptionSummary | undefined
Latest status update subscription diagnostics.
Returnsโ
(
siteData: {identifier:string;monitoring?:boolean;monitors?:Monitor[];name?:string; }):Promise<void>
Parametersโ
siteDataโ
identifierโ
string
monitoring?โ
boolean
monitors?โ
Monitor[]
name?โ
string
Returnsโ
Promise<void>