Skip to main content

Function: selectSites()

selectSites(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; }): Site[]

Defined in: src/stores/sites/selectors.ts:4

Selects the current list of sites.

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โ€‹

Site[]