All files / libs/data-capture/fields/components/src/lib/user/fetch-container UserFetchContainer.tsx

100% Statements 35/35
100% Branches 1/1
100% Functions 1/1
100% Lines 35/35

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 361x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x  
import { pick } from 'lodash-es';
import { memo } from 'react';
 
import { useUserInformations } from '@amalia/tenants/users/state';
import { type KeysOfUserWithStringValues } from '@amalia/tenants/users/types';
 
import { UserPrettyFormat, type UserPrettyFormatProps } from '../pretty-format/UserPrettyFormat';
 
export type UserFetchContainerProps<TProperty extends KeysOfUserWithStringValues> = Pick<
  UserPrettyFormatProps,
  'isComputing' | 'variant'
> & {
  readonly property: TProperty;
  /** except 'null' string value */
  readonly value: string;
};
 
export const UserFetchContainerBase = function UserFetchContainer<TProperty extends KeysOfUserWithStringValues>({
  property,
  value,
  variant,
}: UserFetchContainerProps<TProperty>) {
  const { data: userComputed, isLoading } = useUserInformations(property, value);
 
  return (
    <UserPrettyFormat
      isLoading={isLoading}
      subLabel={value}
      variant={variant}
      {...pick(userComputed, ['firstName', 'lastName', 'pictureURL'])}
    />
  );
};
 
export const UserFetchContainer = memo(UserFetchContainerBase) as typeof UserFetchContainerBase;