All files / libs/amalia-lang/formula/components/src/lib/hooks/use-value-or-attribute-options useValueOrAttributeOptions.tsx

80% Statements 28/35
66.66% Branches 2/3
100% Functions 1/1
80% Lines 28/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 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x               7x 7x 7x 7x 7x 7x 7x 7x 1x  
import { useMemo } from 'react';
import { FormattedMessage } from 'react-intl';
 
import { type RadioButtonOptionShape } from '@allshares/studio-design-system';
import { ValueOrAttributeType } from '@amalia/amalia-lang/formula/types';
 
import { valueOrAttributeMessages } from './useValueOrAttributeOptions.messages';
 
export const useValueOrAttributeOptions = (
  propertyName?: string,
  customObjectName?: string,
): RadioButtonOptionShape<ValueOrAttributeType>[] =>
  useMemo(
    () => [
      {
        value: ValueOrAttributeType.ATTRIBUTE,
        label: <FormattedMessage {...valueOrAttributeMessages[ValueOrAttributeType.ATTRIBUTE]} />,
        help:
          propertyName && customObjectName ? (
            <FormattedMessage
              defaultMessage="Compare “{propertyName}” with other “{customObjectName}” fields or linked fields."
              values={{
                propertyName,
                customObjectName,
              }}
            />
          ) : undefined,
      },
      {
        value: ValueOrAttributeType.VALUE,
        label: <FormattedMessage {...valueOrAttributeMessages[ValueOrAttributeType.VALUE]} />,
      },
    ],
    [propertyName, customObjectName],
  );