All files / apps/host/src/screens/Profile IncomingRequests.tsx

100% Statements 11/11
100% Branches 13/13
100% Functions 2/2
100% Lines 10/10

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 44 45 46 47 48 49 50                    2x               2x 4x 4x   4x 1x     3x 1x     2x                     4x                
import { View } from 'react-native';
 
import { makeStyles } from '@repo/ui/themes/makeStyles';
 
import { ChartRequest, type ChartRequestPeriodInfo } from '@/components/ChartRequest';
 
import { useGetProfileIncomingRequests } from '@/hooks/useProfileRequests';
 
import { RequestChartSkeleton } from './Skeleton/RequestChartSkeleton';
 
const EMPTY_PERIOD: ChartRequestPeriodInfo = {
  activities: [],
};
 
interface IncomingRequestsProps {
  isActive?: boolean;
}
 
export const IncomingRequests = ({ isActive = true }: IncomingRequestsProps) => {
  const styles = useStyles();
  const { data, isLoading } = useGetProfileIncomingRequests({ enabled: isActive });
 
  if (!isActive && !data) {
    return <View style={styles.chartStep} />;
  }
 
  if (isLoading && !data) {
    return <RequestChartSkeleton style={styles.chartStep} />;
  }
 
  return (
    <ChartRequest
      week={data?.week ?? EMPTY_PERIOD}
      month={data?.month ?? EMPTY_PERIOD}
      initialPeriod="week"
      totalLabel="Total received"
      style={styles.chartStep}
    />
  );
};
 
const useStyles = makeStyles(theme => ({
  chartStep: {
    width: theme.metrics.sizing.full,
    backgroundColor: theme.colors.background.pageMuted,
    borderRadius: 0,
    paddingTop: theme.metrics.spacing[1],
  },
}));