feat(web): add durable control-plane event updates
This commit is contained in:
@@ -20,6 +20,7 @@ export interface FleetDataSource {
|
||||
export interface FleetPageProps {
|
||||
readonly dataSource?: FleetDataSource;
|
||||
readonly initialData?: FleetSnapshot;
|
||||
readonly refreshSignal?: number;
|
||||
}
|
||||
|
||||
const EMPTY_SNAPSHOT: FleetSnapshot = { instances: [], statuses: new Map() };
|
||||
@@ -54,7 +55,7 @@ export function canonicalHttpOrigin(value: string): string | null {
|
||||
}
|
||||
}
|
||||
|
||||
export function FleetPage({ dataSource, initialData }: FleetPageProps) {
|
||||
export function FleetPage({ dataSource, initialData, refreshSignal = 0 }: FleetPageProps) {
|
||||
const [snapshot, setSnapshot] = useState<FleetSnapshot | null>(initialData ?? null);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
const [attempt, setAttempt] = useState(0);
|
||||
@@ -76,7 +77,7 @@ export function FleetPage({ dataSource, initialData }: FleetPageProps) {
|
||||
const selectAllRef = useRef<HTMLInputElement>(null);
|
||||
|
||||
useEffect(() => {
|
||||
if (initialData) {
|
||||
if (initialData && refreshSignal === 0) {
|
||||
setSnapshot(initialData);
|
||||
setError(null);
|
||||
return;
|
||||
@@ -100,7 +101,7 @@ export function FleetPage({ dataSource, initialData }: FleetPageProps) {
|
||||
return () => {
|
||||
active = false;
|
||||
};
|
||||
}, [attempt, dataSource, initialData]);
|
||||
}, [attempt, dataSource, initialData, refreshSignal]);
|
||||
|
||||
const model = useMemo(
|
||||
() =>
|
||||
|
||||
Reference in New Issue
Block a user