All files / src/components/music/tracker SongTrackerPatternChannel.tsx

0% Statements 0/9
100% Branches 0/0
0% Functions 0/3
0% Lines 0/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43                                                                                     
import React, { memo } from "react";
import { TRACKER_PATTERN_LENGTH } from "consts";
import { StyledTrackerPatternChannel } from "./style";
import { SongTrackerPatternChannelRow } from "./SongTrackerPatternChannelRow";
 
const ROW_INDICES = Array.from(
  { length: TRACKER_PATTERN_LENGTH },
  (_, index) => index,
);
 
interface SongTrackerPatternChannelProps {
  patternId: number;
  channelId: 0 | 1 | 2 | 3;
  renderSequenceId: number;
  isMuted: boolean;
  activeFieldRef: React.RefObject<HTMLSpanElement | null>;
}
 
export const SongTrackerPatternChannel = memo(
  ({
    patternId,
    channelId,
    renderSequenceId,
    isMuted,
    activeFieldRef,
  }: SongTrackerPatternChannelProps) => {
    return (
      <StyledTrackerPatternChannel $isMuted={isMuted}>
        {ROW_INDICES.map((rowIndex) => (
          <SongTrackerPatternChannelRow
            key={rowIndex}
            patternId={patternId}
            channelId={channelId}
            rowIndex={rowIndex}
            renderSequenceId={renderSequenceId}
            activeFieldRef={activeFieldRef}
          />
        ))}
      </StyledTrackerPatternChannel>
    );
  },
);