add isTrashed to node and entity

This commit is contained in:
Jesper Møller Jensen
2022-09-01 16:08:38 +02:00
parent 8c66b9adb3
commit 9aeb9a18b6
4 changed files with 34 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
import { entities } from './entities';
// Temp mocked database
export class UmbData<T extends { id: number; key: string }> {
export class UmbData<T extends { id: number; key: string; isTrashed: boolean }> {
private _data: Array<T> = [];
constructor(data: Array<T>) {
@@ -32,6 +32,15 @@ export class UmbData<T extends { id: number; key: string }> {
return saveItems;
}
trash(key: string) {
const item = this.getByKey(key);
if (!item) return;
item.isTrashed = true;
this._updateEntity(item);
return item;
}
private _updateEntity(saveItem: T) {
// TODO consider deep merge
const entityIndex = entities.findIndex((item) => item.key === saveItem.key);

View File

@@ -8,6 +8,7 @@ export const entities: Array<Entity> = [
parentKey: '24fcd88a-d1bb-423b-b794-8a94dcddcb6a',
name: 'Member 1',
hasChildren: false,
isTrashed: false,
},
{
id: 2,
@@ -16,6 +17,7 @@ export const entities: Array<Entity> = [
parentKey: '24fcd88a-d1bb-423b-b794-8a94dcddcb6a',
name: 'Member 2',
hasChildren: true,
isTrashed: false,
},
{
id: 3,
@@ -24,6 +26,7 @@ export const entities: Array<Entity> = [
parentKey: '06c6919c-6fa7-4aa5-8214-0582c721c472',
name: 'Member 3',
hasChildren: false,
isTrashed: false,
},
{
id: 4,
@@ -32,6 +35,7 @@ export const entities: Array<Entity> = [
type: 'memberGroup',
name: 'Member Group 1',
hasChildren: false,
isTrashed: false,
},
{
id: 5,
@@ -40,6 +44,7 @@ export const entities: Array<Entity> = [
type: 'memberGroup',
name: 'Member Group 2',
hasChildren: false,
isTrashed: false,
},
{
id: 1245,
@@ -47,6 +52,7 @@ export const entities: Array<Entity> = [
parentKey: '3fd3eba5-c893-4d3c-af67-f574e6eded38',
name: 'Text',
hasChildren: false,
isTrashed: false,
type: 'dataType',
},
{
@@ -55,6 +61,7 @@ export const entities: Array<Entity> = [
parentKey: '3fd3eba5-c893-4d3c-af67-f574e6eded38',
name: 'Textarea',
hasChildren: false,
isTrashed: false,
type: 'dataType',
},
{
@@ -63,6 +70,7 @@ export const entities: Array<Entity> = [
parentKey: '3fd3eba5-c893-4d3c-af67-f574e6eded38',
name: 'My JS Property Editor',
hasChildren: false,
isTrashed: false,
type: 'dataType',
},
{
@@ -71,6 +79,7 @@ export const entities: Array<Entity> = [
parentKey: '3fd3eba5-c893-4d3c-af67-f574e6eded38',
name: 'Context Example',
hasChildren: false,
isTrashed: false,
type: 'dataType',
},
{
@@ -79,6 +88,7 @@ export const entities: Array<Entity> = [
parentKey: '3fd3eba5-c893-4d3c-af67-f574e6eded38',
name: 'Content Picker (DataType)',
hasChildren: false,
isTrashed: false,
type: 'dataType',
},
{
@@ -87,6 +97,7 @@ export const entities: Array<Entity> = [
name: 'Document Type 1',
type: 'documentType',
hasChildren: false,
isTrashed: false,
parentKey: '055a17d0-525a-4d06-9f75-92dc174ab0bd',
},
{
@@ -95,6 +106,7 @@ export const entities: Array<Entity> = [
name: 'Document Type 2',
type: 'documentType',
hasChildren: false,
isTrashed: false,
parentKey: '055a17d0-525a-4d06-9f75-92dc174ab0bd',
},
{
@@ -104,6 +116,7 @@ export const entities: Array<Entity> = [
type: 'media',
icon: 'picture',
hasChildren: false,
isTrashed: false,
parentKey: '',
},
{
@@ -113,6 +126,7 @@ export const entities: Array<Entity> = [
name: 'Media 2',
icon: 'picture',
hasChildren: false,
isTrashed: false,
parentKey: '',
},
{
@@ -122,6 +136,7 @@ export const entities: Array<Entity> = [
type: 'document',
icon: 'document',
hasChildren: false,
isTrashed: false,
parentKey: '',
},
{
@@ -131,6 +146,7 @@ export const entities: Array<Entity> = [
type: 'document',
icon: 'favorite',
hasChildren: false,
isTrashed: false,
parentKey: '',
},
{
@@ -140,6 +156,7 @@ export const entities: Array<Entity> = [
type: 'document',
icon: 'document',
hasChildren: false,
isTrashed: false,
parentKey: '',
},
];

View File

@@ -9,6 +9,7 @@ export interface Entity {
type: string;
hasChildren: boolean; // TODO: Should this be here?
parentKey: string;
isTrashed: boolean;
}
// Temp mocked database

View File

@@ -9,6 +9,7 @@ export interface NodeEntity {
properties: Array<NodeProperty>;
data: Array<NodePropertyData>;
variants: Array<any>; // TODO: define variant data
isTrashed: boolean;
//layout?: any; // TODO: define layout type - make it non-optional
}
@@ -35,6 +36,7 @@ export const data: Array<NodeEntity> = [
{
id: 1,
key: '74e4008a-ea4f-4793-b924-15e02fd380d1',
isTrashed: false,
name: 'Document 1',
type: 'document',
icon: 'document',
@@ -85,6 +87,7 @@ export const data: Array<NodeEntity> = [
{
id: 2,
key: '74e4008a-ea4f-4793-b924-15e02fd380d2',
isTrashed: false,
name: 'Document 2',
type: 'document',
icon: 'favorite',
@@ -148,6 +151,7 @@ export const data: Array<NodeEntity> = [
{
id: 3,
key: 'cdd30288-2d1c-41b4-89a9-61647b4a10d5',
isTrashed: false,
name: 'Document 3',
type: 'document',
icon: 'document',
@@ -170,6 +174,7 @@ export const data: Array<NodeEntity> = [
{
id: 2001,
key: 'f2f81a40-c989-4b6b-84e2-057cecd3adc1',
isTrashed: false,
name: 'Media 1',
type: 'media',
icon: 'picture',
@@ -192,6 +197,7 @@ export const data: Array<NodeEntity> = [
{
id: 2002,
key: '69431027-8867-45bf-a93b-72bbdabfb177',
isTrashed: false,
type: 'media',
name: 'Media 2',
icon: 'picture',