{"version":3,"file":"AssigneeSelect.mjs","sources":["../../../../../../../admin/src/routes/content-manager/model/id/components/AssigneeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n  useNotification,\n  useAPIErrorHandler,\n  useRBAC,\n  useAdminUsers,\n  useQueryParams,\n  useDebounce,\n} from '@strapi/admin/strapi-admin';\nimport { unstable_useDocument } from '@strapi/content-manager/strapi-admin';\nimport { Combobox, ComboboxOption, Field, VisuallyHidden } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../../modules/hooks';\nimport { useUpdateAssigneeMutation } from '../../../../../services/content-manager';\nimport { buildValidParams } from '../../../../../utils/api';\nimport { getDisplayName } from '../../../../../utils/users';\n\nimport { ASSIGNEE_ATTRIBUTE_NAME } from './constants';\n\nimport type { Modules } from '@strapi/types';\n\nconst PAGE_SIZE = 10;\n\ntype AdminUserFilters = Modules.EntityService.Params.Pick<'admin::user', 'filters'>['filters'];\n\nconst contains = (value: string) => ({ $containsi: value });\n\nconst AssigneeSelect = ({ isCompact }: { isCompact?: boolean }) => {\n  const {\n    collectionType = '',\n    id,\n    slug: model = '',\n  } = useParams<{ collectionType: string; slug: string; id: string }>();\n  const permissions = useTypedSelector((state) => state.admin_app.permissions);\n  const { formatMessage } = useIntl();\n  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n  const { toggleNotification } = useNotification();\n  const {\n    allowedActions: { canRead },\n    isLoading: isLoadingPermissions,\n  } = useRBAC(permissions.settings?.users);\n  const [{ query }] = useQueryParams();\n  const params = React.useMemo(() => buildValidParams(query), [query]);\n\n  const [pageSize, setPageSize] = React.useState(PAGE_SIZE);\n  const [search, setSearch] = React.useState('');\n  const debouncedSearch = useDebounce(search, 300);\n  const searchFilters = React.useMemo(() => {\n    const value = debouncedSearch.trim();\n\n    if (!value) {\n      return undefined;\n    }\n\n    const [firstTerm, ...restTerms] = value.split(/\\s+/);\n    const rest = restTerms.join(' ');\n    const filters: AdminUserFilters = {\n      $or: [\n        { firstname: contains(value) },\n        { lastname: contains(value) },\n        { username: contains(value) },\n        { email: contains(value) },\n      ],\n    };\n\n    if (rest) {\n      filters.$or = [\n        ...(filters.$or ?? []),\n        {\n          $and: [{ firstname: contains(firstTerm) }, { lastname: contains(rest) }],\n        },\n        {\n          $and: [{ firstname: contains(rest) }, { lastname: contains(firstTerm) }],\n        },\n      ];\n    }\n\n    return filters;\n  }, [debouncedSearch]);\n\n  const {\n    data,\n    isLoading: isLoadingUsers,\n    isError,\n  } = useAdminUsers(\n    {\n      pageSize,\n      filters: searchFilters,\n    },\n    {\n      skip: isLoadingPermissions || !canRead,\n    }\n  );\n  const { document } = unstable_useDocument(\n    {\n      collectionType,\n      model,\n      documentId: id,\n      params,\n    },\n    {\n      skip: !id && collectionType !== 'single-types',\n    }\n  );\n\n  const users = React.useMemo(() => data?.users ?? [], [data?.users]);\n  const { pageCount = 1, page = 1 } = data?.pagination ?? {};\n\n  const currentAssignee = document ? document[ASSIGNEE_ATTRIBUTE_NAME] : null;\n\n  // Keep the currently assigned user in the options even when they fall outside\n  // the loaded page or the active search — otherwise the Combobox loses its value.\n  const options = React.useMemo(() => {\n    if (!currentAssignee) return users;\n    return users.some((u) => u.id === currentAssignee.id) ? users : [currentAssignee, ...users];\n  }, [users, currentAssignee]);\n\n  const handleOpenChange = (isOpen?: boolean) => {\n    if (!isOpen) {\n      setPageSize(PAGE_SIZE);\n      setSearch('');\n    }\n  };\n\n  const handleLoadMore = () => {\n    setPageSize(pageSize + PAGE_SIZE);\n  };\n\n  const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n    setSearch(e.currentTarget.value);\n    setPageSize(PAGE_SIZE);\n  };\n\n  const [updateAssignee, { error, isLoading: isMutating }] = useUpdateAssigneeMutation();\n\n  if (!collectionType || !model || !document?.documentId) {\n    return null;\n  }\n\n  const handleChange = async (assigneeId: string | null) => {\n    // a simple way to avoid erroneous updates\n    if (currentAssignee?.id === assigneeId) {\n      return;\n    }\n\n    const res = await updateAssignee({\n      slug: collectionType,\n      model,\n      id: document.documentId,\n      params,\n      data: {\n        id: assigneeId ? parseInt(assigneeId, 10) : null,\n      },\n    });\n\n    if ('data' in res) {\n      toggleNotification({\n        type: 'success',\n        message: formatMessage({\n          id: 'review-workflows.assignee.notification.saved',\n          defaultMessage: 'Assignee updated',\n        }),\n      });\n    }\n\n    if (isCompact && 'error' in res) {\n      toggleNotification({\n        type: 'danger',\n        message: formatAPIError(res.error),\n      });\n    }\n  };\n\n  const isDisabled =\n    (!isLoadingPermissions && !isLoadingUsers && users.length === 0) || !document.documentId;\n  const isLoading = isLoadingUsers || isLoadingPermissions || isMutating;\n  const hasMoreItems = page < pageCount;\n\n  const assigneeLabel = formatMessage({\n    id: 'review-workflows.assignee.label',\n    defaultMessage: 'Assignee',\n  });\n  const assigneeClearLabel = formatMessage({\n    id: 'review-workflows.assignee.clear',\n    defaultMessage: 'Clear assignee',\n  });\n  const assigneePlaceholder = formatMessage({\n    id: 'review-workflows.assignee.placeholder',\n    defaultMessage: 'Select…',\n  });\n\n  if (isCompact) {\n    return (\n      <Field.Root name={ASSIGNEE_ATTRIBUTE_NAME} id={ASSIGNEE_ATTRIBUTE_NAME}>\n        <VisuallyHidden>\n          <Field.Label>{assigneeLabel}</Field.Label>\n        </VisuallyHidden>\n        <Combobox\n          clearLabel={assigneeClearLabel}\n          disabled={isDisabled}\n          value={currentAssignee ? currentAssignee.id.toString() : null}\n          onChange={handleChange}\n          onClear={() => handleChange(null)}\n          onOpenChange={handleOpenChange}\n          onLoadMore={handleLoadMore}\n          hasMoreItems={hasMoreItems}\n          onInputChange={handleInputChange}\n          placeholder={assigneePlaceholder}\n          loading={isLoading || isLoadingPermissions || isMutating}\n          size=\"S\"\n        >\n          {options.map((user) => {\n            return (\n              <ComboboxOption\n                key={user.id}\n                value={user.id.toString()}\n                textValue={getDisplayName(user)}\n              >\n                {getDisplayName(user)}\n              </ComboboxOption>\n            );\n          })}\n        </Combobox>\n      </Field.Root>\n    );\n  }\n\n  return (\n    <Field.Root\n      name={ASSIGNEE_ATTRIBUTE_NAME}\n      id={ASSIGNEE_ATTRIBUTE_NAME}\n      error={\n        ((isError &&\n          canRead &&\n          formatMessage({\n            id: 'review-workflows.assignee.error',\n            defaultMessage: 'An error occurred while fetching users',\n          })) ||\n          (error && formatAPIError(error))) ??\n        undefined\n      }\n    >\n      <Field.Label>{assigneeLabel}</Field.Label>\n      <Combobox\n        clearLabel={assigneeClearLabel}\n        disabled={\n          (!isLoadingPermissions && !isLoading && users.length === 0) || !document.documentId\n        }\n        value={currentAssignee ? currentAssignee.id.toString() : null}\n        onChange={handleChange}\n        onClear={() => handleChange(null)}\n        onOpenChange={handleOpenChange}\n        onLoadMore={handleLoadMore}\n        hasMoreItems={hasMoreItems}\n        onInputChange={handleInputChange}\n        placeholder={assigneePlaceholder}\n        loading={isLoading || isLoadingPermissions || isMutating}\n      >\n        {options.map((user) => {\n          return (\n            <ComboboxOption\n              key={user.id}\n              value={user.id.toString()}\n              textValue={getDisplayName(user)}\n            >\n              {getDisplayName(user)}\n            </ComboboxOption>\n          );\n        })}\n      </Combobox>\n      <Field.Error />\n    </Field.Root>\n  );\n};\n\nexport { AssigneeSelect };\n"],"names":["PAGE_SIZE","contains","value","$containsi","AssigneeSelect","isCompact","collectionType","id","slug","model","useParams","permissions","useTypedSelector","state","admin_app","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","allowedActions","canRead","isLoading","isLoadingPermissions","useRBAC","settings","users","query","useQueryParams","params","React","useMemo","buildValidParams","pageSize","setPageSize","useState","search","setSearch","debouncedSearch","useDebounce","searchFilters","trim","undefined","firstTerm","restTerms","split","rest","join","filters","$or","firstname","lastname","username","email","$and","data","isLoadingUsers","isError","useAdminUsers","skip","document","unstable_useDocument","documentId","pageCount","page","pagination","currentAssignee","ASSIGNEE_ATTRIBUTE_NAME","options","some","u","handleOpenChange","isOpen","handleLoadMore","handleInputChange","e","currentTarget","updateAssignee","error","isMutating","useUpdateAssigneeMutation","handleChange","assigneeId","res","parseInt","type","message","defaultMessage","isDisabled","length","hasMoreItems","assigneeLabel","assigneeClearLabel","assigneePlaceholder","_jsxs","Field","Root","name","_jsx","VisuallyHidden","Label","Combobox","clearLabel","disabled","toString","onChange","onClear","onOpenChange","onLoadMore","onInputChange","placeholder","loading","size","map","user","ComboboxOption","textValue","getDisplayName","Error"],"mappings":"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"}