{"version":3,"file":"PluralName.mjs","sources":["../../../admin/src/components/PluralName.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { FormChangeHandler, IntlLabel } from '../types';\n\ninterface PluralNameProps {\n  description?: IntlLabel;\n  error?: string;\n  intlLabel: IntlLabel;\n  modifiedData: { displayName?: string };\n  name: string;\n  onChange: FormChangeHandler<string>;\n  value?: string;\n}\n\nexport const PluralName = ({\n  description,\n  error,\n  intlLabel,\n  modifiedData,\n  name,\n  onChange,\n  value,\n}: PluralNameProps) => {\n  const { formatMessage } = useIntl();\n  const onChangeRef = useRef(onChange);\n  const displayName = modifiedData?.displayName || '';\n  const previousDisplayName = useRef(displayName);\n  const previousValue = useRef(value);\n\n  useEffect(() => {\n    if (displayName && displayName !== previousDisplayName.current) {\n      const baseValue = nameToSlug(displayName);\n      let newValue = baseValue;\n\n      try {\n        newValue = pluralize(baseValue, 2);\n      } catch (err) {\n        // If pluralize fails, use the base value\n      }\n\n      onChangeRef.current({ target: { name, value: newValue } });\n      previousValue.current = newValue;\n      previousDisplayName.current = displayName;\n    } else if (!displayName) {\n      onChangeRef.current({ target: { name, value: '' } });\n      previousValue.current = '';\n      previousDisplayName.current = '';\n    }\n  }, [displayName, name, value]);\n\n  const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n  const hint = description\n    ? formatMessage(\n        { id: description.id, defaultMessage: description.defaultMessage },\n        { ...description.values }\n      )\n    : '';\n  const label = formatMessage(intlLabel);\n\n  return (\n    <Field.Root error={errorMessage} hint={hint} name={name}>\n      <Field.Label>{label}</Field.Label>\n      <TextInput onChange={onChange} value={value || ''} type=\"text\" />\n      <Field.Error />\n    </Field.Root>\n  );\n};\n"],"names":["PluralName","description","error","intlLabel","modifiedData","name","onChange","value","formatMessage","useIntl","onChangeRef","useRef","displayName","previousDisplayName","previousValue","useEffect","current","baseValue","nameToSlug","newValue","pluralize","err","target","errorMessage","id","defaultMessage","hint","values","label","_jsxs","Field","Root","_jsx","Label","TextInput","type","Error"],"mappings":";;;;;;;MAoBaA,UAAAA,GAAa,CAAC,EACzBC,WAAW,EACXC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,IAAI,EACJC,QAAQ,EACRC,KAAK,EACW,GAAA;IAChB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,cAAcC,MAAAA,CAAOL,QAAAA,CAAAA;IAC3B,MAAMM,WAAAA,GAAcR,cAAcQ,WAAAA,IAAe,EAAA;AACjD,IAAA,MAAMC,sBAAsBF,MAAAA,CAAOC,WAAAA,CAAAA;AACnC,IAAA,MAAME,gBAAgBH,MAAAA,CAAOJ,KAAAA,CAAAA;IAE7BQ,SAAAA,CAAU,IAAA;AACR,QAAA,IAAIH,WAAAA,IAAeA,WAAAA,KAAgBC,mBAAAA,CAAoBG,OAAO,EAAE;AAC9D,YAAA,MAAMC,YAAYC,UAAAA,CAAWN,WAAAA,CAAAA;AAC7B,YAAA,IAAIO,QAAAA,GAAWF,SAAAA;YAEf,IAAI;AACFE,gBAAAA,QAAAA,GAAWC,UAAUH,SAAAA,EAAW,CAAA,CAAA;AAClC,YAAA,CAAA,CAAE,OAAOI,GAAAA,EAAK;;AAEd,YAAA;AAEAX,YAAAA,WAAAA,CAAYM,OAAO,CAAC;gBAAEM,MAAAA,EAAQ;AAAEjB,oBAAAA,IAAAA;oBAAME,KAAAA,EAAOY;AAAS;AAAE,aAAA,CAAA;AACxDL,YAAAA,aAAAA,CAAcE,OAAO,GAAGG,QAAAA;AACxBN,YAAAA,mBAAAA,CAAoBG,OAAO,GAAGJ,WAAAA;QAChC,CAAA,MAAO,IAAI,CAACA,WAAAA,EAAa;AACvBF,YAAAA,WAAAA,CAAYM,OAAO,CAAC;gBAAEM,MAAAA,EAAQ;AAAEjB,oBAAAA,IAAAA;oBAAME,KAAAA,EAAO;AAAG;AAAE,aAAA,CAAA;AAClDO,YAAAA,aAAAA,CAAcE,OAAO,GAAG,EAAA;AACxBH,YAAAA,mBAAAA,CAAoBG,OAAO,GAAG,EAAA;AAChC,QAAA;IACF,CAAA,EAAG;AAACJ,QAAAA,WAAAA;AAAaP,QAAAA,IAAAA;AAAME,QAAAA;AAAM,KAAA,CAAA;IAE7B,MAAMgB,YAAAA,GAAerB,QAAQM,aAAAA,CAAc;QAAEgB,EAAAA,EAAItB,KAAAA;QAAOuB,cAAAA,EAAgBvB;KAAM,CAAA,GAAK,EAAA;IACnF,MAAMwB,IAAAA,GAAOzB,cACTO,aAAAA,CACE;AAAEgB,QAAAA,EAAAA,EAAIvB,YAAYuB,EAAE;AAAEC,QAAAA,cAAAA,EAAgBxB,YAAYwB;KAAe,EACjE;AAAE,QAAA,GAAGxB,YAAY0B;KAAO,CAAA,GAE1B,EAAA;AACJ,IAAA,MAAMC,QAAQpB,aAAAA,CAAcL,SAAAA,CAAAA;IAE5B,qBACE0B,IAAA,CAACC,MAAMC,IAAI,EAAA;QAAC7B,KAAAA,EAAOqB,YAAAA;QAAcG,IAAAA,EAAMA,IAAAA;QAAMrB,IAAAA,EAAMA,IAAAA;;AACjD,0BAAA2B,GAAA,CAACF,MAAMG,KAAK,EAAA;AAAEL,gBAAAA,QAAAA,EAAAA;;0BACdI,GAAA,CAACE,SAAAA,EAAAA;gBAAU5B,QAAAA,EAAUA,QAAAA;AAAUC,gBAAAA,KAAAA,EAAOA,KAAAA,IAAS,EAAA;gBAAI4B,IAAAA,EAAK;;AACxD,0BAAAH,GAAA,CAACF,MAAMM,KAAK,EAAA,EAAA;;;AAGlB;;;;"}