Add fleet groups, agent screenshots, deploy guards, and Crucible polish.

This commit is contained in:
AetherForge
2026-06-02 20:51:52 -07:00
parent 01d76b3730
commit 41b5ec7a88
66 changed files with 1773 additions and 388 deletions

View File

@@ -0,0 +1,28 @@
import { createContext, useContext, useMemo, useState, type ReactNode } from 'react';
export type MatrixRainContextValue = {
/** True when Crucible has exactly one online node selected for remote ops. */
crucibleFocus: boolean;
setCrucibleFocus: (active: boolean) => void;
};
const MatrixRainContext = createContext<MatrixRainContextValue | null>(null);
export function MatrixRainProvider({ children }: { children: ReactNode }) {
const [crucibleFocus, setCrucibleFocus] = useState(false);
const value = useMemo(
() => ({ crucibleFocus, setCrucibleFocus }),
[crucibleFocus]
);
return (
<MatrixRainContext.Provider value={value}>{children}</MatrixRainContext.Provider>
);
}
export function useMatrixRain(): MatrixRainContextValue {
const ctx = useContext(MatrixRainContext);
if (!ctx) {
return { crucibleFocus: false, setCrucibleFocus: () => {} };
}
return ctx;
}