Bitmain Immersion container components
Bitmain Immersion container UI for the Operations Centre
UI for Bitmain Immersion containers. These components render unit control boxes, pump-station status, immersion settings, and system-status views on top of Bitmain immersion-shaped device records.
For components shared across all container vendors (TanksBox, Socket, ContainerControlsBox, etc.), see the Containers overview.
Prerequisites
- Complete the @mdk/foundation installation and add the dependency
- A Bitmain Immersion container device record. Most components read pump and temperature fields from
container_specific_stats.
Components
| Component | Description |
|---|---|
BitMainControlsTab | Bitmain immersion controls tab view |
BitMainImmersionControlBox | Two-column immersion control box container |
BitMainImmersionPumpStationControlBox | Pump station alarm and state card |
BitMainImmersionSettings | Bitmain immersion threshold settings form |
BitMainImmersionSummaryBox | Bitmain immersion pumps and liquid temps |
BitMainImmersionSystemStatus | Immersion server start and connection status |
BitMainImmersionUnitControlBox | Immersion unit status and frequency card |
BitMainControlsTab
Controls tab showing Bitmain immersion container fan status, A-D tank fluid levels, and GPS latitude and longitude with direction.
Import
import { BitMainControlsTab } from '@mdk/foundation'Props
| Prop | Type | Default | Description |
|---|---|---|---|
data | Device | required | Bitmain immersion container device record |
Basic usage
<BitMainControlsTab data={immersionContainer} />Composition
- Container fan indicator from
container_fanandfan_fault(red on fault, green running, gray off) - Tank levels for Tank A to Tank D read from
tank_a_leveltotank_d_levelin cm - GPS latitude and longitude with direction fields
Styling
.mdk-bitmain-controls-tab: Root element.mdk-bitmain-controls-tab__section: Section wrapper.mdk-bitmain-controls-tab__section-header: Fan status row.mdk-bitmain-controls-tab__section-label: Fan label text.mdk-bitmain-controls-tab__title: Section heading.mdk-bitmain-controls-tab__grid: Tank or GPS grid.mdk-bitmain-controls-tab__item: Tank cell.mdk-bitmain-controls-tab__label: Tank label.mdk-bitmain-controls-tab__value: Tank value.mdk-bitmain-controls-tab__location: GPS cell.mdk-bitmain-controls-tab__location-label: GPS axis label.mdk-bitmain-controls-tab__location-value: GPS coordinate value.mdk-bitmain-controls-tab__location-dir: GPS direction text
BitMainImmersionControlBox
Reusable layout box for immersion controls with optional title, left and right columns, and bottom slot, plus a borderless secondary variant.
Import
import { BitMainImmersionControlBox } from '@mdk/foundation'Props
| Prop | Type | Default | Description |
|---|---|---|---|
title | string | none | Box title shown above the left column |
leftContent | ReactNode | none | Content for the left column |
rightContent | ReactNode | none | Content for the right column |
bottomContent | ReactNode | none | Optional content for the bottom row |
secondary | boolean | false | Borderless variant |
className | string | none | Additional class name on the root |
Basic usage
<BitMainImmersionControlBox
title="Power Status"
leftContent={<div>Current: 35°C</div>}
rightContent={<div>Target: 30°C</div>}
bottomContent={<div>Additional info</div>}
/>Styling
.mdk-bitmain-immersion-control-box: Root element.mdk-bitmain-immersion-control-box--secondary: Borderless variant modifier.mdk-bitmain-immersion-control-box__top: Two-column wrapper.mdk-bitmain-immersion-control-box__left: Left column.mdk-bitmain-immersion-control-box__right: Right column.mdk-bitmain-immersion-control-box__title: Title text.mdk-bitmain-immersion-control-box__bottom: Bottom row
BitMainImmersionPumpStationControlBox
Card showing a pump station's normal or fault tag along with ready, operating, and started state labels. Hides states that are undefined.
Import
import { BitMainImmersionPumpStationControlBox } from '@mdk/foundation'Props
| Prop | Type | Default | Description |
|---|---|---|---|
title | string | none | Box title |
alarmStatus | boolean | false | Shows Fault tag when true, Normal otherwise |
ready | boolean | none | Ready state; row hidden when omitted |
operation | boolean | none | Operating state; row hidden when omitted |
start | boolean | none | Started state; row hidden when omitted |
className | string | none | Additional class name on the root |
Basic usage
<BitMainImmersionPumpStationControlBox
title="Pump Station #1"
alarmStatus={false}
ready={true}
operation={true}
start={true}
/>Styling
.mdk-bitmain-immersion-pump-station-control-box: Root element.mdk-bitmain-immersion-pump-station-control-box__title: Title text.mdk-bitmain-immersion-pump-station-control-box__content: Tag and states row.mdk-bitmain-immersion-pump-station-control-box__status: Alarm tag wrapper.mdk-bitmain-immersion-pump-station-control-box__state: State label.mdk-bitmain-immersion-pump-station-control-box__state--on: Active state modifier.mdk-bitmain-immersion-pump-station-control-box__state--off: Inactive state modifier
BitMainImmersionSettings
Wraps the immersion editable threshold form for Bitmain immersion containers, wiring color and flash helpers for oil temperature.
Import
import { BitMainImmersionSettings } from '@mdk/foundation'Props
| Prop | Type | Default | Description |
|---|---|---|---|
data | Device | none | Bitmain immersion container device record |
containerSettings | { thresholds?: Record<string, unknown> } | null | null | Optional custom oil temperature thresholds |
Basic usage
<BitMainImmersionSettings data={immersionContainer} />With custom thresholds
<BitMainImmersionSettings
data={immersionContainer}
containerSettings={{ thresholds: customThresholds }}
/>Composition
- Renders
ImmersionEditableThresholdFormwired with Bitmain immersion color, flash, and superflash helpers for oil temperature - When
statusis missing ondata, it defaults to'active'
BitMainImmersionSummaryBox
Summary panel showing oil pump 1/2 and water pump statuses alongside primary and secondary liquid supply temperatures with alert coloring.
Import
import { BitMainImmersionSummaryBox } from '@mdk/foundation'Props
| Prop | Type | Default | Description |
|---|---|---|---|
data | Device | none | Bitmain immersion container device record |
containerSettings | BitMainImmersionSummaryBoxContainerSettings | null | null | Optional custom temperature thresholds |
BitMainImmersionSummaryBoxContainerSettings type
type BitMainImmersionSummaryBoxContainerSettings = {
thresholds?: Record<string, unknown>
}Basic usage
<BitMainImmersionSummaryBox data={immersionContainer} />With custom thresholds
<BitMainImmersionSummaryBox
data={immersionContainer}
containerSettings={{ thresholds: customThresholds }}
/>Composition
- Oil pump #1 and Oil pump #2 indicators derived from
second_pump1/second_pump2and their_faultflags - Water pump indicator derived from
one_pump - Three
SingleStatCards for primary supply temp, secondary supply Temp1, and secondary supply Temp2, each colored and flashed viagetImmersionTemperatureColorandshouldImmersionTemperatureFlash
Styling
.mdk-bitmain-immersion-summary-box: Root element.mdk-bitmain-immersion-summary-box__pumps: Pumps row.mdk-bitmain-immersion-summary-box__pump: Single pump cell.mdk-bitmain-immersion-summary-box__pump-title: Pump label text.mdk-bitmain-immersion-summary-box__liquid-stats: Liquid stat cards row
BitMainImmersionSystemStatus
Small panel showing whether server start is allowed and whether the Bitmain immersion container connection is connected or disconnected.
Import
import { BitMainImmersionSystemStatus } from '@mdk/foundation'Props
| Prop | Type | Default | Description |
|---|---|---|---|
data | Device | none | Bitmain immersion container device record |
Basic usage
<BitMainImmersionSystemStatus data={immersionContainer} />Styling
.mdk-bitmain-immersion-system-status: Root element.mdk-bitmain-immersion-system-status__header: Header row.mdk-bitmain-immersion-system-status__title: Title text.mdk-bitmain-immersion-system-status__content: Status rows wrapper.mdk-bitmain-immersion-system-status__item: Single status row.mdk-bitmain-immersion-system-status__label: Row label text
BitMainImmersionUnitControlBox
Control card for an immersion unit or dry cooler, showing alarm tag, running indicator, and Hz frequency in a configurable left or right slot.
Import
import { BitMainImmersionUnitControlBox } from '@mdk/foundation'Props
| Prop | Type | Default | Description |
|---|---|---|---|
title | string | none | Box title shown above the left column |
alarmStatus | boolean | false | Shows Fault tag when true, Normal otherwise |
frequency | number | none | Frequency value in Hz; row hidden when omitted |
isDryCooler | boolean | false | Forces status label to "Dry Cooler" |
running | boolean | false | Shows a running or off indicator |
showFrequencyInLeftColumn | boolean | false | Renders the frequency row in the left column instead of the right |
secondary | boolean | false | Borderless variant |
className | string | none | Additional class name on the root |
Basic usage
<BitMainImmersionUnitControlBox
title="Unit #1"
alarmStatus={false}
running={true}
frequency={50}
/>Dry cooler variant
<BitMainImmersionUnitControlBox
isDryCooler
running
frequency={45}
showFrequencyInLeftColumn
/>Styling
.mdk-bitmain-immersion-unit-control-box: Root element.mdk-bitmain-immersion-unit-control-box__item: Label and value row (status or frequency).mdk-bitmain-immersion-unit-control-box__item-label: Row label text.mdk-bitmain-immersion-unit-control-box__item-value: Row value text

