Skip to main content

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>