Add tag datatable

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2023-07-14 19:35:07 +03:00
parent 498c3e77cc
commit 1e36e01ea1
16 changed files with 197 additions and 96 deletions

View File

@@ -1,2 +1,2 @@
export { MEME_TYPE, memeTypePlural, Meme } from './meme';
export { Tag, deleteAllTags } from './tag';
export { Tag, deleteTag, deleteAllTags } from './tag';

View File

@@ -45,8 +45,8 @@ class Meme extends Realm.Object<Meme> {
description: 'string?',
isFavorite: { type: 'bool', indexed: true, default: false },
tags: 'Tag[]',
dateCreated: 'date',
dateModified: 'date',
dateCreated: { type: 'date', default: new Date() },
dateModified: { type: 'date', default: new Date() },
dateUsed: 'date?',
timesUsed: { type: 'int', default: 0 },
},

View File

@@ -6,6 +6,10 @@ class Tag extends Realm.Object<Tag> {
name!: string;
color!: string;
memes!: Realm.List<Meme>;
dateCreated!: Date;
dateModified!: Date;
dateUsed?: Date;
timesUsed!: number;
static schema: Realm.ObjectSchema = {
name: 'Tag',
@@ -15,14 +19,25 @@ class Tag extends Realm.Object<Tag> {
name: 'string',
color: 'string',
memes: 'Meme[]',
dateCreated: { type: 'date', default: new Date() },
dateModified: { type: 'date', default: new Date() },
dateUsed: 'date?',
timesUsed: { type: 'int', default: 0 },
},
};
}
const deleteTag = (realm: Realm, tag: Tag) => {
realm.write(() => {
realm.delete(tag);
});
};
const deleteAllTags = (realm: Realm) => {
realm.write(() => {
realm.delete(realm.objects<Tag>('Tag'));
});
};
export { Tag, deleteAllTags };
export { Tag, deleteTag, deleteAllTags };