Add tag editing

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2023-07-19 13:18:33 +03:00
parent 6e1f7bd81f
commit 85732e247a
11 changed files with 93 additions and 42 deletions

View File

@@ -1,4 +1,5 @@
import { Realm } from '@realm/react';
import { BSON } from 'realm';
import { Tag } from './tag';
enum MEME_TYPE {
@@ -20,7 +21,7 @@ const memeTypePlural = {
};
class Meme extends Realm.Object<Meme> {
id!: Realm.BSON.UUID;
id!: BSON.UUID;
type!: MEME_TYPE;
uri!: Realm.List<string>;
size!: number;
@@ -38,7 +39,7 @@ class Meme extends Realm.Object<Meme> {
name: 'Meme',
primaryKey: 'id',
properties: {
id: 'uuid',
id: { type: 'uuid', default: () => new BSON.UUID() },
type: { type: 'string', indexed: true },
uri: 'string[]',
size: 'int',
@@ -47,8 +48,8 @@ class Meme extends Realm.Object<Meme> {
isFavorite: { type: 'bool', indexed: true, default: false },
tags: { type: 'list', objectType: 'Tag', default: [] },
tagsLength: { type: 'int', default: 0 },
dateCreated: { type: 'date', default: new Date() },
dateModified: { type: 'date', default: new Date() },
dateCreated: { type: 'date', default: () => new Date() },
dateModified: { type: 'date', default: () => new Date() },
dateUsed: 'date?',
timesUsed: { type: 'int', default: 0 },
},

View File

@@ -1,8 +1,9 @@
import { Realm } from '@realm/react';
import { BSON } from 'realm';
import { Meme } from './meme';
class Tag extends Realm.Object<Tag> {
id!: Realm.BSON.UUID;
id!: BSON.UUID;
name!: string;
color!: string;
memes!: Realm.List<Meme>;
@@ -15,13 +16,13 @@ class Tag extends Realm.Object<Tag> {
name: 'Tag',
primaryKey: 'id',
properties: {
id: 'uuid',
id: { type: 'uuid', default: () => new BSON.UUID() },
name: { type: 'string', indexed: true },
color: 'string',
memes: { type: 'list', objectType: 'Meme', default: [] },
memesLength: { type: 'int', default: 0 },
dateCreated: { type: 'date', default: new Date() },
dateModified: { type: 'date', default: new Date() },
dateCreated: { type: 'date', default: () => new Date() },
dateModified: { type: 'date', default: () => new Date() },
timesUsed: { type: 'int', default: 0 },
},
};