import { PickerTableListItem, PickerTableListItemProps, } from '../PickerTableListItem'; import React, { useState } from 'react'; import { FiltersMap, KeyedItem } from '@wix/bex-core'; import { PickerStandaloneState } from '../../state'; import { TextWidthLoader } from '../TextWidthLoader'; import { Button } from '@wix/design-system'; import { observer } from 'mobx-react-lite'; export interface PickerStandaloneTableListItemProps extends Omit, 'state'> { state: PickerStandaloneState; keyedItem: KeyedItem; primaryActionWidth?: string; defaultPrimaryButtonText?: string; } function _PickerStandaloneTableListItem( props: PickerStandaloneTableListItemProps, ) { const { state, keyedItem, onClick, primaryActionWidth, defaultPrimaryButtonText, ...rest } = props; const [hovered, setHovered] = useState(false); const { submitted, picker, isMobileView } = state; const { collection: { bulkSelect, translate: t }, } = picker; const primaryButtonText = state.primaryButtonText ?? defaultPrimaryButtonText ?? t('cairo.continue'); const { containerProps, listItemProps, primaryActionProps } = isMobileView ? { containerProps: undefined, listItemProps: { primaryActionWidth: 'min-content', }, primaryActionProps: undefined, } : { containerProps: { onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), }, listItemProps: { primaryActionWidth, }, primaryActionProps: { showButton: submitted ? bulkSelect.isChecked(keyedItem.key) : hovered, }, }; return (
{ state.handlePrimaryButtonClick(keyedItem); onClick?.(e); } } {...listItemProps} primaryAction={ primaryActionProps && primaryActionProps.showButton ? ( ) : undefined } {...rest} />
); } export const PickerStandaloneTableListItem = observer( _PickerStandaloneTableListItem, );