MetaErrorMessage.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { h } from 'preact'
  2. type $TSFixMe = any
  3. const metaFieldIdToName = (metaFieldId: $TSFixMe, metaFields: $TSFixMe) => {
  4. const fields = typeof metaFields === 'function' ? metaFields() : metaFields
  5. const field = fields.filter((f: $TSFixMe) => f.id === metaFieldId)
  6. return field[0].name
  7. }
  8. export default function MetaErrorMessage(props: $TSFixMe): JSX.Element {
  9. const { file, toggleFileCard, i18n, metaFields } = props
  10. const { missingRequiredMetaFields } = file
  11. if (!missingRequiredMetaFields?.length) {
  12. return null as $TSFixMe
  13. }
  14. const metaFieldsString = missingRequiredMetaFields
  15. .map((missingMetaField: $TSFixMe) =>
  16. metaFieldIdToName(missingMetaField, metaFields),
  17. )
  18. .join(', ')
  19. return (
  20. <div className="uppy-Dashboard-Item-errorMessage">
  21. {i18n('missingRequiredMetaFields', {
  22. smart_count: missingRequiredMetaFields.length,
  23. fields: metaFieldsString,
  24. })}{' '}
  25. <button
  26. type="button"
  27. class="uppy-u-reset uppy-Dashboard-Item-errorMessageBtn"
  28. onClick={() => toggleFileCard(true, file.id)}
  29. >
  30. {i18n('editFile')}
  31. </button>
  32. </div>
  33. )
  34. }