+ |
+
+
+
+
+
+
+ {disk.name}
+
+
+ {disk.device}
+
+
+
+ |
+
+
+ {disk.model}
+
+
+ {disk.serial}
+
+ |
+
+
+ {disk.status.replace('DISK_', '')}
+
+ |
+
+ {formatBytes(disk.size)}
+ |
+
+
+ {disk.fsType || 'N/A'}
+
+ |
+
+ {disk.temp !== null ? (
+
+
+ 50 ? 'red' : disk.temp > 40 ? 'orange' : undefined}
+ >
+ {disk.temp}°C
+
+
+ ) : (
+
+ {disk.spunDown ? 'Standby' : '-'}
+
+ )}
+ |
+
+
+
+
+ R: {disk.numReads.toLocaleString()}
+
+
+
+
+ W: {disk.numWrites.toLocaleString()}
+
+
+
+ |
+
+ {disk.numErrors > 0 ? (
+
+ {disk.numErrors}
+
+ ) : (
+
+ 0
+
+ )}
+ |
+
+ {usedPercent ? (
+
+
+ ) : (
+
+ -
+
+ )}
+ |
+
+ );
+}
+
+export default function ArrayPage() {
+ const [arrayLoading, setArrayLoading] = useState(false);
+ const [parityLoading, setParityLoading] = useState(false);
+
+ const {
+ data: array,
+ isLoading,
+ error,
+ refetch,
+ } = api.unraid.array.useQuery(undefined, {
+ refetchInterval: 5000,
+ });
+
+ const startArray = api.unraid.startArray.useMutation({
+ onMutate: () => setArrayLoading(true),
+ onSettled: () => setArrayLoading(false),
+ onSuccess: () => {
+ notifications.show({
+ title: 'Array Starting',
+ message: 'Array is starting...',
+ color: 'green',
+ icon: