@@ -9,14 +9,18 @@ import { useDateRange } from '../../../app/hooks/use-date-range';
99import { useLocale } from '../../../app/locale' ;
1010import {
1111 agencySiteRoute ,
12+ agencySiteBackupsRoute ,
1213 agencySiteBackupsIndexRoute ,
1314 agencySiteBackupDetailRoute ,
1415 agencySiteBackupRestoreRoute ,
1516 agencySiteBackupDownloadRoute ,
1617} from '../../../app/router/agency' ;
1718import { PageHeader } from '../../../components/page-header' ;
1819import PageLayout from '../../../components/page-layout' ;
20+ import { BackupNotices } from '../../../sites/backups/backup-notices' ;
21+ import { BackupNowButton } from '../../../sites/backups/backup-now-button' ;
1922import { BackupsBrowser , useIsBackupsSmallViewport } from '../../../sites/backups/backups-browser' ;
23+ import { useBackupState } from '../../../sites/backups/use-backup-state' ;
2024import type { ActivityLogEntry } from '@automattic/api-core' ;
2125
2226export default function AgencySiteBackupsListPage ( ) {
@@ -28,6 +32,7 @@ export default function AgencySiteBackupsListPage() {
2832 | { rewindId ?: string }
2933 | undefined ;
3034 const rewindId = routeParams ?. rewindId ;
35+ const searchParams = agencySiteBackupsRoute . useSearch ( ) ;
3136
3237 const { data : site } = useSuspenseQuery ( siteBySlugQuery ( siteSlug ) ) ;
3338
@@ -40,6 +45,8 @@ export default function AgencySiteBackupsListPage() {
4045 } ) ;
4146 const { gmtOffset, timezoneString } = siteSettings ;
4247
48+ const backupState = useBackupState ( site . ID ) ;
49+
4350 const { dateRange, handleDateRangeChange } = useDateRange ( {
4451 timezoneString,
4552 gmtOffset,
@@ -95,15 +102,21 @@ export default function AgencySiteBackupsListPage() {
95102 const isMobileDetailsView = useIsBackupsSmallViewport ( ) && ! ! rewindId ;
96103
97104 const actions = (
98- < DateRangePicker
99- start = { dateRange . start }
100- end = { dateRange . end }
101- gmtOffset = { gmtOffset }
102- timezoneString = { timezoneString }
103- locale = { locale }
104- defaultFallbackPreset = "last-30-days"
105- onChange = { handleDateRangeChangeWrapper }
106- />
105+ < >
106+ { /* This div is required to fix a layout width issue when the DateRangePicker is placed together with the BackupNowButton. */ }
107+ < div >
108+ < DateRangePicker
109+ start = { dateRange . start }
110+ end = { dateRange . end }
111+ gmtOffset = { gmtOffset }
112+ timezoneString = { timezoneString }
113+ locale = { locale }
114+ defaultFallbackPreset = "last-30-days"
115+ onChange = { handleDateRangeChangeWrapper }
116+ />
117+ </ div >
118+ < BackupNowButton site = { site } backupState = { backupState } />
119+ </ >
107120 ) ;
108121
109122 return (
@@ -118,13 +131,24 @@ export default function AgencySiteBackupsListPage() {
118131 actions = { isMobileDetailsView ? undefined : actions }
119132 />
120133 }
134+ notices = {
135+ ! isMobileDetailsView && backupState . status !== 'idle' ? (
136+ < BackupNotices
137+ backupState = { backupState }
138+ site = { site }
139+ timezoneString = { timezoneString }
140+ gmtOffset = { gmtOffset }
141+ />
142+ ) : undefined
143+ }
121144 >
122145 < BackupsBrowser
123146 site = { site }
124147 rewindId = { rewindId }
125148 dateRange = { dateRange }
126149 timezoneString = { timezoneString }
127150 gmtOffset = { gmtOffset }
151+ searchParams = { searchParams }
128152 onSelectBackup = { navigateToBackup }
129153 onRequestRestore = { handleRequestRestore }
130154 onRequestDownload = { handleRequestDownload }
0 commit comments