- {source.layerNames.map(name => (
+ renderChannels={channels => {
+ const rows = channelRows(source, channels);
+ return rows ? (
+
+
+ Check a channel to show it; uncheck it to hide it
+
+ {/* Column-major, so channels still read in c-axis order. */}
+
+ {rows.map((row, index) => {
+ const adding = addingChannels.has(
+ `${source.key}::${index}`
+ );
+ return (
onToggleLayer(name, e.target.checked)}
+ checked={
+ row.layerName === undefined
+ ? adding
+ : !source.archivedNames.includes(row.layerName)
+ }
+ disabled={adding}
+ key={row.key}
+ label={row.label}
+ onChange={e => {
+ if (row.layerName !== undefined) {
+ onToggleLayer(row.layerName, e.target.checked);
+ } else if (e.target.checked) {
+ onAddChannel(source, row.label, index);
+ }
+ }}
/>
- ))}
-
- )
- : undefined
- }
+ );
+ })}
+