@firecms/core 3.3.0-canary.ae3fdc5 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +156 -54
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +156 -54
- package/dist/index.umd.js.map +1 -1
- package/dist/types/translations.d.ts +9 -1
- package/package.json +3 -3
- package/src/app/Scaffold.tsx +13 -1
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +5 -2
- package/src/components/HomePage/NavigationCardBinding.tsx +6 -3
- package/src/core/DefaultDrawer.tsx +1 -1
- package/src/hooks/useBuildNavigationController.tsx +5 -1
- package/src/locales/de.ts +9 -1
- package/src/locales/en.ts +9 -1
- package/src/locales/es.ts +9 -1
- package/src/locales/fr.ts +9 -1
- package/src/locales/hi.ts +9 -1
- package/src/locales/it.ts +9 -1
- package/src/locales/pt.ts +9 -1
- package/src/types/translations.ts +9 -1
- package/src/util/resolutions.ts +3 -0
|
@@ -481,10 +481,18 @@ export interface FireCMSTranslations {
|
|
|
481
481
|
auto_setup_collections_button: string;
|
|
482
482
|
auto_setup_collections_title: string;
|
|
483
483
|
auto_setup_collections_desc: string;
|
|
484
|
-
|
|
484
|
+
setting_up_collections: string;
|
|
485
|
+
setting_up_collection: string;
|
|
485
486
|
no_collections_found_to_setup: string;
|
|
486
487
|
collections_have_been_setup: string;
|
|
487
488
|
error_setting_up_collections: string;
|
|
489
|
+
setup_collections_title: string;
|
|
490
|
+
setup_collections_select_desc: string;
|
|
491
|
+
select_all: string;
|
|
492
|
+
deselect_all: string;
|
|
493
|
+
setup_collections_confirm: string;
|
|
494
|
+
collection_setup_success: string;
|
|
495
|
+
go_to_collection: string;
|
|
488
496
|
add_your: string;
|
|
489
497
|
database_collections: string;
|
|
490
498
|
to_firecms: string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@firecms/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.3.0
|
|
4
|
+
"version": "3.3.0",
|
|
5
5
|
"description": "Awesome Firebase/Firestore-based headless open-source CMS",
|
|
6
6
|
"funding": {
|
|
7
7
|
"url": "https://github.com/sponsors/firecmsco"
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"@dnd-kit/core": "^6.3.1",
|
|
54
54
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
55
55
|
"@dnd-kit/sortable": "^10.0.0",
|
|
56
|
-
"@firecms/formex": "^3.3.0
|
|
57
|
-
"@firecms/ui": "^3.3.0
|
|
56
|
+
"@firecms/formex": "^3.3.0",
|
|
57
|
+
"@firecms/ui": "^3.3.0",
|
|
58
58
|
"@floating-ui/dom": "^1.7.4",
|
|
59
59
|
"@radix-ui/react-portal": "^1.1.10",
|
|
60
60
|
"@radix-ui/react-slot": "^1.2.4",
|
package/src/app/Scaffold.tsx
CHANGED
|
@@ -70,7 +70,13 @@ export const Scaffold = React.memo<PropsWithChildren<ScaffoldProps>>(
|
|
|
70
70
|
const includeDrawer = drawerChildren.length > 0;
|
|
71
71
|
const largeLayout = useLargeLayout();
|
|
72
72
|
|
|
73
|
-
const [drawerOpen, setDrawerOpen] = React.useState(
|
|
73
|
+
const [drawerOpen, setDrawerOpen] = React.useState(() => {
|
|
74
|
+
try {
|
|
75
|
+
return localStorage.getItem("firecms_drawer_open") === "true";
|
|
76
|
+
} catch {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
74
80
|
const [onHover, setOnHover] = React.useState(false);
|
|
75
81
|
|
|
76
82
|
const setOnHoverTrue = useCallback(() => setOnHover(true), []);
|
|
@@ -78,10 +84,16 @@ export const Scaffold = React.memo<PropsWithChildren<ScaffoldProps>>(
|
|
|
78
84
|
|
|
79
85
|
const handleDrawerOpen = useCallback(() => {
|
|
80
86
|
setDrawerOpen(true);
|
|
87
|
+
try {
|
|
88
|
+
localStorage.setItem("firecms_drawer_open", "true");
|
|
89
|
+
} catch { /* ignore */ }
|
|
81
90
|
}, []);
|
|
82
91
|
|
|
83
92
|
const handleDrawerClose = useCallback(() => {
|
|
84
93
|
setDrawerOpen(false);
|
|
94
|
+
try {
|
|
95
|
+
localStorage.setItem("firecms_drawer_open", "false");
|
|
96
|
+
} catch { /* ignore */ }
|
|
85
97
|
}, []);
|
|
86
98
|
|
|
87
99
|
const computedDrawerOpen: boolean = drawerOpen || Boolean(largeLayout && autoOpenDrawer && onHover);
|
|
@@ -178,7 +178,9 @@ export const EntityCollectionView = React.memo(
|
|
|
178
178
|
|
|
179
179
|
const collection = useMemo(() => {
|
|
180
180
|
const userOverride = userConfigPersistence?.getCollectionConfig<M>(fullPath);
|
|
181
|
-
|
|
181
|
+
if (!userOverride) return collectionProp;
|
|
182
|
+
const { properties, ...rest } = userOverride;
|
|
183
|
+
return mergeDeep(collectionProp, rest) as EntityCollection<M>;
|
|
182
184
|
}, [collectionProp, fullPath, userConfigPersistence?.getCollectionConfig]);
|
|
183
185
|
|
|
184
186
|
const openEntityMode = collection?.openEntityMode ?? DEFAULT_ENTITY_OPEN_MODE;
|
|
@@ -507,7 +509,8 @@ export const EntityCollectionView = React.memo(
|
|
|
507
509
|
path: fullPath,
|
|
508
510
|
propertyConfigs: customizationController.propertyConfigs,
|
|
509
511
|
authController,
|
|
510
|
-
|
|
512
|
+
userConfigPersistence,
|
|
513
|
+
}), [collection, fullPath, userConfigPersistence]);
|
|
511
514
|
|
|
512
515
|
// Check if Kanban view is possible (collection has at least one string enum property)
|
|
513
516
|
const hasEnumProperty = useMemo(() => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useNavigate } from "react-router-dom";
|
|
2
2
|
|
|
3
|
-
import { useCustomizationController, useFireCMSContext } from "../../hooks";
|
|
3
|
+
import { useCustomizationController, useFireCMSContext, useTranslation } from "../../hooks";
|
|
4
4
|
import { NavigationEntry, PluginHomePageActionsProps } from "../../types";
|
|
5
5
|
import { IconForView } from "../../util";
|
|
6
6
|
import { useUserConfigurationPersistence } from "../../hooks/useUserConfigurationPersistence";
|
|
@@ -38,6 +38,7 @@ export function NavigationCardBinding({
|
|
|
38
38
|
}) {
|
|
39
39
|
|
|
40
40
|
const userConfigurationPersistence = useUserConfigurationPersistence();
|
|
41
|
+
const { t } = useTranslation();
|
|
41
42
|
const collectionIcon = <IconForView collectionOrView={collection ?? view}/>;
|
|
42
43
|
|
|
43
44
|
const navigate = useNavigate();
|
|
@@ -92,15 +93,17 @@ export function NavigationCardBinding({
|
|
|
92
93
|
{actionsArray}
|
|
93
94
|
</>
|
|
94
95
|
|
|
96
|
+
const translatedName = t(name);
|
|
97
|
+
|
|
95
98
|
if (type === "admin") {
|
|
96
99
|
return <SmallNavigationCard icon={collectionIcon}
|
|
97
|
-
name={
|
|
100
|
+
name={translatedName}
|
|
98
101
|
url={url}/>;
|
|
99
102
|
}
|
|
100
103
|
|
|
101
104
|
return <NavigationCard
|
|
102
105
|
icon={collectionIcon}
|
|
103
|
-
name={
|
|
106
|
+
name={translatedName}
|
|
104
107
|
description={description}
|
|
105
108
|
actions={actions}
|
|
106
109
|
onClick={() => {
|
|
@@ -414,7 +414,11 @@ export function useBuildNavigationController<EC extends EntityCollection, USER e
|
|
|
414
414
|
const baseCollection = getCollectionByPathOrId(removeInitialAndTrailingSlashes(idOrPath), collections);
|
|
415
415
|
|
|
416
416
|
const userOverride = includeUserOverride ? userConfigPersistence?.getCollectionConfig(idOrPath) : undefined;
|
|
417
|
-
|
|
417
|
+
let overriddenCollection = baseCollection;
|
|
418
|
+
if (baseCollection && userOverride) {
|
|
419
|
+
const { properties, ...rest } = userOverride;
|
|
420
|
+
overriddenCollection = mergeDeep(baseCollection, rest);
|
|
421
|
+
}
|
|
418
422
|
|
|
419
423
|
let result: Partial<EntityCollection> | undefined = overriddenCollection;
|
|
420
424
|
|
package/src/locales/de.ts
CHANGED
|
@@ -514,10 +514,18 @@ export const de: FireCMSTranslations = {
|
|
|
514
514
|
auto_setup_collections_button: "Sammlungen automatisch einrichten",
|
|
515
515
|
auto_setup_collections_title: "Sammlungen automatisch einrichten?",
|
|
516
516
|
auto_setup_collections_desc: "Dadurch werden automatisch Sammlungskonfigurationen für Sammlungen erstellt, die noch <b>NICHT</b> zugeordnet sind.",
|
|
517
|
-
|
|
517
|
+
setting_up_collections: "Sammlungen werden eingerichtet",
|
|
518
|
+
setting_up_collection: "{{name}} wird eingerichtet",
|
|
518
519
|
no_collections_found_to_setup: "Keine einzurichtenden Sammlungen gefunden",
|
|
519
520
|
collections_have_been_setup: "Sammlungen wurden automatisch eingerichtet",
|
|
520
521
|
error_setting_up_collections: "Fehler beim automatischen Einrichten der Sammlungen",
|
|
522
|
+
setup_collections_title: "Set up collections",
|
|
523
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
524
|
+
select_all: "Select all",
|
|
525
|
+
deselect_all: "Deselect all",
|
|
526
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
527
|
+
collection_setup_success: "{{name}} has been set up",
|
|
528
|
+
go_to_collection: "Go to collection",
|
|
521
529
|
add_your: "Fügen Sie Ihre",
|
|
522
530
|
database_collections: "Datenbanksammlungen",
|
|
523
531
|
to_firecms: "zu FireCMS hinzu",
|
package/src/locales/en.ts
CHANGED
|
@@ -522,10 +522,18 @@ export const en: FireCMSTranslations = {
|
|
|
522
522
|
auto_setup_collections_button: "Automatically set up collections",
|
|
523
523
|
auto_setup_collections_title: "Automatically set up collections?",
|
|
524
524
|
auto_setup_collections_desc: "This will automatically create collection configs for collections that are <b>NOT</b> already mapped",
|
|
525
|
-
|
|
525
|
+
setting_up_collections: "Setting up collections",
|
|
526
|
+
setting_up_collection: "Setting up {{name}}",
|
|
526
527
|
no_collections_found_to_setup: "No collections found to setup.",
|
|
527
528
|
collections_have_been_setup: "Collections have been automatically setup.",
|
|
528
529
|
error_setting_up_collections: "Error automatically setting up collections",
|
|
530
|
+
setup_collections_title: "Set up collections",
|
|
531
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
532
|
+
select_all: "Select all",
|
|
533
|
+
deselect_all: "Deselect all",
|
|
534
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
535
|
+
collection_setup_success: "{{name}} has been set up",
|
|
536
|
+
go_to_collection: "Go to collection",
|
|
529
537
|
|
|
530
538
|
// --- Home Suggestions ---
|
|
531
539
|
add_your: "Add your",
|
package/src/locales/es.ts
CHANGED
|
@@ -522,10 +522,18 @@ export const es: FireCMSTranslations = {
|
|
|
522
522
|
auto_setup_collections_button: "Configurar colecciones automáticamente",
|
|
523
523
|
auto_setup_collections_title: "¿Configurar colecciones automáticamente?",
|
|
524
524
|
auto_setup_collections_desc: "Esto creará automáticamente la configuración de las colecciones que <b>NO</b> estén mapeadas",
|
|
525
|
-
|
|
525
|
+
setting_up_collections: "Configurando colecciones",
|
|
526
|
+
setting_up_collection: "Configurando {{name}}",
|
|
526
527
|
no_collections_found_to_setup: "No se encontraron colecciones para configurar",
|
|
527
528
|
collections_have_been_setup: "¡Tus colecciones han sido configuradas!",
|
|
528
529
|
error_setting_up_collections: "Error al configurar colecciones",
|
|
530
|
+
setup_collections_title: "Set up collections",
|
|
531
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
532
|
+
select_all: "Select all",
|
|
533
|
+
deselect_all: "Deselect all",
|
|
534
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
535
|
+
collection_setup_success: "{{name}} has been set up",
|
|
536
|
+
go_to_collection: "Go to collection",
|
|
529
537
|
|
|
530
538
|
// --- Home Suggestions ---
|
|
531
539
|
add_your: "Añade tus",
|
package/src/locales/fr.ts
CHANGED
|
@@ -514,10 +514,18 @@ export const fr: FireCMSTranslations = {
|
|
|
514
514
|
auto_setup_collections_button: "Configurer les collections automatiquement",
|
|
515
515
|
auto_setup_collections_title: "Configurer les collections automatiquement ?",
|
|
516
516
|
auto_setup_collections_desc: "Cela créera automatiquement des configurations de collection pour les collections qui ne sont <b>PAS</b> déjà mappées",
|
|
517
|
-
|
|
517
|
+
setting_up_collections: "Configuration des collections",
|
|
518
|
+
setting_up_collection: "Configuration de {{name}}",
|
|
518
519
|
no_collections_found_to_setup: "Aucune collection à configurer trouvée",
|
|
519
520
|
collections_have_been_setup: "Les collections ont été configurées",
|
|
520
521
|
error_setting_up_collections: "Erreur lors de la configuration des collections",
|
|
522
|
+
setup_collections_title: "Set up collections",
|
|
523
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
524
|
+
select_all: "Select all",
|
|
525
|
+
deselect_all: "Deselect all",
|
|
526
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
527
|
+
collection_setup_success: "{{name}} has been set up",
|
|
528
|
+
go_to_collection: "Go to collection",
|
|
521
529
|
add_your: "Ajoutez vos",
|
|
522
530
|
database_collections: "collections de base de données",
|
|
523
531
|
to_firecms: "à FireCMS",
|
package/src/locales/hi.ts
CHANGED
|
@@ -514,10 +514,18 @@ export const hi: FireCMSTranslations = {
|
|
|
514
514
|
auto_setup_collections_button: "संग्रहों को स्वचालित रूप से सेट करें",
|
|
515
515
|
auto_setup_collections_title: "संग्रहों की स्वचालित सेटअप",
|
|
516
516
|
auto_setup_collections_desc: "अपने मौजूदा Firestore डेटा के आधार पर संग्रहों को स्वचालित रूप से सेट करें। FireCMS को आपके लिए परफेक्ट CMS कॉन्फ़िगर करने दें।",
|
|
517
|
-
|
|
517
|
+
setting_up_collections: "संग्रह सेट किए जा रहे हैं",
|
|
518
|
+
setting_up_collection: "{{name}} सेट किया जा रहा है",
|
|
518
519
|
no_collections_found_to_setup: "सेट करने के लिए कोई संग्रह नहीं मिला",
|
|
519
520
|
collections_have_been_setup: "संग्रहों को सेट कर दिया गया है",
|
|
520
521
|
error_setting_up_collections: "संग्रह सेट करने में त्रुटि",
|
|
522
|
+
setup_collections_title: "Set up collections",
|
|
523
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
524
|
+
select_all: "Select all",
|
|
525
|
+
deselect_all: "Deselect all",
|
|
526
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
527
|
+
collection_setup_success: "{{name}} has been set up",
|
|
528
|
+
go_to_collection: "Go to collection",
|
|
521
529
|
add_your: "अपने",
|
|
522
530
|
database_collections: "डेटाबेस संग्रह",
|
|
523
531
|
to_firecms: "को FireCMS में जोड़ें",
|
package/src/locales/it.ts
CHANGED
|
@@ -514,10 +514,18 @@ export const it: FireCMSTranslations = {
|
|
|
514
514
|
auto_setup_collections_button: "Configura le collezioni automaticamente",
|
|
515
515
|
auto_setup_collections_title: "Configurazione automatica delle collezioni",
|
|
516
516
|
auto_setup_collections_desc: "Configura le collezioni automaticamente in base ai dati Firestore esistenti. Lascia che FireCMS configuri il CMS perfetto per te.",
|
|
517
|
-
|
|
517
|
+
setting_up_collections: "Configurazione delle collezioni",
|
|
518
|
+
setting_up_collection: "Configurazione di {{name}}",
|
|
518
519
|
no_collections_found_to_setup: "Nessuna collezione trovata da configurare",
|
|
519
520
|
collections_have_been_setup: "Le collezioni sono state configurate",
|
|
520
521
|
error_setting_up_collections: "Errore durante la configurazione delle collezioni",
|
|
522
|
+
setup_collections_title: "Set up collections",
|
|
523
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
524
|
+
select_all: "Select all",
|
|
525
|
+
deselect_all: "Deselect all",
|
|
526
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
527
|
+
collection_setup_success: "{{name}} has been set up",
|
|
528
|
+
go_to_collection: "Go to collection",
|
|
521
529
|
add_your: "Aggiungi le tue",
|
|
522
530
|
database_collections: "collezioni del database",
|
|
523
531
|
to_firecms: "a FireCMS",
|
package/src/locales/pt.ts
CHANGED
|
@@ -519,10 +519,18 @@ export const pt: FireCMSTranslations = {
|
|
|
519
519
|
auto_setup_collections_button: "Configurar coleções automaticamente",
|
|
520
520
|
auto_setup_collections_title: "Configurar coleções automaticamente?",
|
|
521
521
|
auto_setup_collections_desc: "Isto criará automaticamente configurações de coleção para coleções que <b>NÃO</b> estão já mapeadas",
|
|
522
|
-
|
|
522
|
+
setting_up_collections: "Configurando coleções",
|
|
523
|
+
setting_up_collection: "Configurando {{name}}",
|
|
523
524
|
no_collections_found_to_setup: "Nenhuma coleção encontrada para configurar.",
|
|
524
525
|
collections_have_been_setup: "As coleções foram configuradas automaticamente.",
|
|
525
526
|
error_setting_up_collections: "Erro ao configurar coleções automaticamente",
|
|
527
|
+
setup_collections_title: "Set up collections",
|
|
528
|
+
setup_collections_select_desc: "Select which collections to automatically set up:",
|
|
529
|
+
select_all: "Select all",
|
|
530
|
+
deselect_all: "Deselect all",
|
|
531
|
+
setup_collections_confirm: "Set up ({{count}})",
|
|
532
|
+
collection_setup_success: "{{name}} has been set up",
|
|
533
|
+
go_to_collection: "Go to collection",
|
|
526
534
|
|
|
527
535
|
// --- Home Suggestions ---
|
|
528
536
|
add_your: "Adicione as suas",
|
|
@@ -544,10 +544,18 @@ export interface FireCMSTranslations {
|
|
|
544
544
|
auto_setup_collections_button: string;
|
|
545
545
|
auto_setup_collections_title: string;
|
|
546
546
|
auto_setup_collections_desc: string;
|
|
547
|
-
|
|
547
|
+
setting_up_collections: string;
|
|
548
|
+
setting_up_collection: string;
|
|
548
549
|
no_collections_found_to_setup: string;
|
|
549
550
|
collections_have_been_setup: string;
|
|
550
551
|
error_setting_up_collections: string;
|
|
552
|
+
setup_collections_title: string;
|
|
553
|
+
setup_collections_select_desc: string;
|
|
554
|
+
select_all: string;
|
|
555
|
+
deselect_all: string;
|
|
556
|
+
setup_collections_confirm: string;
|
|
557
|
+
collection_setup_success: string;
|
|
558
|
+
go_to_collection: string;
|
|
551
559
|
|
|
552
560
|
// --- Home Suggestions ---
|
|
553
561
|
add_your: string;
|
package/src/util/resolutions.ts
CHANGED
|
@@ -90,8 +90,11 @@ export const resolveCollection = <M extends Record<string, any>,>
|
|
|
90
90
|
.map(([id, property]) => ({ [id]: property }))
|
|
91
91
|
.reduce((a, b) => ({ ...a, ...b }), {});
|
|
92
92
|
|
|
93
|
+
const { properties: overrideProps, ...restOverrides } = collectionOverride ?? {};
|
|
94
|
+
|
|
93
95
|
return {
|
|
94
96
|
...collection,
|
|
97
|
+
...restOverrides,
|
|
95
98
|
properties: cleanedProperties,
|
|
96
99
|
originalCollection: collection
|
|
97
100
|
} as ResolvedEntityCollection<M>;
|