All files / libs/payout-calculation/statements/components/src/lib/components/drawer/statement StatementDrawerStatement.tsx

0% Statements 0/37
0% Branches 0/1
0% Functions 0/1
0% Lines 0/37

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                                                                           
import { memo } from 'react';

import { type Statement } from '@amalia/core/types';
import { useStatementById, useStatementForecast } from '@amalia/payout-calculation/statements/state';

import { StatementDrawerDetails } from '../details/StatementDrawerDetails';
import { StatementDrawerSkeleton } from '../skeleton/StatementDrawerSkeleton';

export type StatementDrawerStatementProps = {
  readonly isForecast: boolean;
  readonly statementId: Statement['id'] | null;
  readonly showWorkflows?: boolean;
};

export const StatementDrawerStatement = memo(function StatementDrawerStatement({
  isForecast,
  statementId,
  showWorkflows = true,
}: StatementDrawerStatementProps) {
  const { data: statement } = useStatementById(statementId);
  const { data: statementForecast } = useStatementForecast(statement, { enabled: isForecast });

  // In forecast, we need to wait for the statement and the forecasted statement to both be ready.
  const isReady = statement && (!isForecast || !!statementForecast);

  return isReady ? (
    <StatementDrawerDetails
      key={statementId}
      isForecast={isForecast}
      showWorkflows={showWorkflows}
      statement={statement}
      statementForecast={statementForecast}
    />
  ) : (
    <StatementDrawerSkeleton isForecast={isForecast} />
  );
});