Skip to content
This repository was archived by the owner on Feb 6, 2024. It is now read-only.

Commit 76f6d72

Browse files
feat: user templates on the IC (#1417)
Signed-off-by: peterpeterparker <[email protected]>
1 parent 799fbad commit 76f6d72

File tree

6 files changed

+32
-14
lines changed

6 files changed

+32
-14
lines changed

providers/ic/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export * from './providers/data/deck.ic';
77
export * from './providers/data/doc.ic';
88
export * from './providers/data/slide.ic';
99
export * from './providers/data/paragraph.ic';
10+
export * from './providers/data/template.ic';
1011

1112
export * from './providers/storage/storage.ic';
1213

providers/ic/src/interface.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ export * from './providers/auth/auth.ic';
44

55
export * from './providers/data/user.ic';
66
export * from './providers/data/deck.ic';
7+
export * from './providers/data/doc.ic';
78
export * from './providers/data/slide.ic';
9+
export * from './providers/data/paragraph.ic';
10+
export * from './providers/data/template.ic';
811

912
export * from './providers/storage/storage.ic';
1013

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import {v4 as uuid} from 'uuid';
2+
3+
import {CreateTemplate, GetUserTemplates, Template, TemplateData, UpdateTemplate} from '@deckdeckgo/editor';
4+
5+
import {entries, setData} from '../../utils/data.utils';
6+
7+
export const getUserTemplates: GetUserTemplates = (_userId: string): Promise<Template[]> =>
8+
entries<Template, TemplateData>({startsWith: '/templates/'});
9+
10+
export const createTemplate: CreateTemplate = (data: TemplateData): Promise<Template> => {
11+
const id: string = uuid();
12+
13+
return setData<Template, TemplateData>({key: `/templates/${id}`, id, data});
14+
};
15+
16+
export const updateTemplate: UpdateTemplate = (template: Template): Promise<Template> => {
17+
const {data, id} = template;
18+
19+
return setData<Template, TemplateData>({key: `/templates/${id}`, id, data});
20+
};

providers/ic/src/utils/data.utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ export const entries = async <T, D>({startsWith, notContains}: {startsWith?: str
3131
);
3232

3333
const promises: Promise<T>[] = data.map(([, data]: [string, Data]) => fromData<T, D>({data, identity}));
34-
const datas: T[] = await Promise.all(promises);
34+
const results: T[] = await Promise.all(promises);
3535

3636
const t1 = performance.now();
37-
console.log(`Data IC datas done. ${t1 - t0}`, datas);
37+
console.log(`Data IC entries done. ${t1 - t0}`, results);
3838

39-
return datas;
39+
return results;
4040
};
4141

4242
const fromData = async <T, D>({data, identity}: {data: Data; identity: Identity}): Promise<T> => {

studio/src/app/pages/core/settings/app-templates/app-templates.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class AppTemplates {
3434
}
3535

3636
private async initUserTemplates() {
37-
if (!authStore.state.authUser) {
37+
if (!authStore.state.loggedIn) {
3838
return;
3939
}
4040

studio/src/app/providers/data/template/template.provider.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {Template, TemplateData, GetUserTemplates, CreateTemplate, UpdateTemplate
33
import authStore from '../../../stores/auth.store';
44
import templatesStore from '../../../stores/templates.store';
55

6-
import {firebase} from '../../../utils/core/environment.utils';
6+
import {cloud} from '../../../utils/core/environment.utils';
77
import {cloudProvider} from '../../../utils/core/providers.utils';
88

99
export const initTemplates = async () => {
@@ -15,9 +15,7 @@ export const initTemplates = async () => {
1515
return;
1616
}
1717

18-
// TODO: Template for Internet Computer
19-
20-
if (!firebase()) {
18+
if (!cloud()) {
2119
return;
2220
}
2321

@@ -37,9 +35,7 @@ export const initTemplates = async () => {
3735
};
3836

3937
export const createUserTemplate = async (templateData: TemplateData): Promise<Template | undefined> => {
40-
// TODO: Template for Internet Computer
41-
42-
if (!firebase()) {
38+
if (!cloud()) {
4339
throw new Error('Template cannot be created. Not supported.');
4440
}
4541

@@ -49,9 +45,7 @@ export const createUserTemplate = async (templateData: TemplateData): Promise<Te
4945
};
5046

5147
export const updateTemplate = async (template: Template): Promise<Template | undefined> => {
52-
// TODO: Template for Internet Computer
53-
54-
if (!firebase()) {
48+
if (!cloud()) {
5549
throw new Error('Template cannot be updated. Not supported.');
5650
}
5751

0 commit comments

Comments
 (0)