Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
7.3 KiB
Plaintext
1 line
7.3 KiB
Plaintext
{"version":3,"file":"index.js","names":["getTranslation","toWords","React","FieldLabel","useField","useConfig","useListQuery","useTranslation","Pill","transformWhereToNaturalLanguage","where","collectionLabel","renderCondition","condition","key","Object","keys","operator","operatorValue","formatValue","val","Date","toLocaleDateString","toString","value","Array","isArray","map","join","_jsxs","pillStyle","size","_jsx","renderWhere","or","length","className","orCondition","orIndex","Fragment","and","andCondition","andIndex","QueryPresetsWhereField","t0","field","t1","label","required","path","collectionSlug","getEntityConfig","collectionConfig","i18n","children","as","labels","plural"],"sources":["../../../../../src/elements/QueryPresets/fields/WhereField/index.tsx"],"sourcesContent":["'use client'\nimport type { JSONFieldClientComponent, Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { toWords } from 'payload/shared'\nimport React from 'react'\n\nimport { FieldLabel } from '../../../../fields/FieldLabel/index.js'\nimport { useField } from '../../../../forms/useField/index.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useListQuery } from '../../../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Pill } from '../../../Pill/index.js'\nimport './index.scss'\n\n/** @todo: improve this */\nconst transformWhereToNaturalLanguage = (\n where: Where,\n collectionLabel: string,\n): React.ReactNode => {\n if (!where) {\n return null\n }\n\n const renderCondition = (condition: any): React.ReactNode => {\n if (!condition || typeof condition !== 'object') {\n return 'No where query'\n }\n\n const key = Object.keys(condition)[0]\n\n if (!key || !condition[key] || typeof condition[key] !== 'object') {\n return 'No where query'\n }\n\n const operator = Object.keys(condition[key])[0]\n const operatorValue = condition[key][operator]\n\n // Format value - ideally would use field schema for proper typing\n const formatValue = (val: any): string => {\n if (typeof val === 'object' && val != null) {\n try {\n return new Date(val).toLocaleDateString()\n } catch {\n return 'Unknown error has occurred'\n }\n }\n return val?.toString() ?? ''\n }\n\n const value = Array.isArray(operatorValue)\n ? operatorValue.map(formatValue).join(', ')\n : formatValue(operatorValue)\n\n return (\n <Pill pillStyle=\"always-white\" size=\"small\">\n <b>{toWords(key)}</b> {operator} <b>{toWords(value)}</b>\n </Pill>\n )\n }\n\n const renderWhere = (where: Where, collectionLabel: string): React.ReactNode => {\n if (where.or && where.or.length > 0) {\n return (\n <div className=\"or-condition\">\n {where.or.map((orCondition, orIndex) => (\n <React.Fragment key={orIndex}>\n {orCondition.and && orCondition.and.length > 0 ? (\n <div className=\"and-condition\">\n {orIndex === 0 && (\n <span className=\"label\">{`Filter ${collectionLabel} where `}</span>\n )}\n {orIndex > 0 && <span className=\"label\"> or </span>}\n {orCondition.and.map((andCondition, andIndex) => (\n <React.Fragment key={andIndex}>\n {renderCondition(andCondition)}\n {andIndex < orCondition.and.length - 1 && (\n <span className=\"label\"> and </span>\n )}\n </React.Fragment>\n ))}\n </div>\n ) : (\n renderCondition(orCondition)\n )}\n </React.Fragment>\n ))}\n </div>\n )\n }\n\n return renderCondition(where)\n }\n\n return renderWhere(where, collectionLabel)\n}\n\nexport const QueryPresetsWhereField: JSONFieldClientComponent = ({\n field: { label, required },\n}) => {\n const { path, value } = useField()\n const { collectionSlug } = useListQuery()\n const { getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { i18n } = useTranslation()\n\n return (\n <div className=\"field-type query-preset-where-field\">\n <FieldLabel as=\"h3\" label={label} path={path} required={required} />\n <div className=\"value-wrapper\">\n {value\n ? transformWhereToNaturalLanguage(\n value as Where,\n getTranslation(collectionConfig?.labels?.plural, i18n),\n )\n : 'No where query'}\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]} |