Function: selectCreateSite()
function selectCreateSite(state: {
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>;
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>;
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;
fullResyncSites: () => Promise<void>;
getSyncStatus: () => Promise<{
lastSyncAt: number | null;
siteCount: number;
source:
| "cache"
| "database"
| "frontend"
| "import"
| "monitor-update";
synchronized: boolean;
}>;
subscribeToSyncEvents: () => () => void;
syncSites: () => Promise<void>;
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โ
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
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
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
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
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>