Skip to content

Commit 57ee813

Browse files
committed
Update UI
1 parent 997004d commit 57ee813

File tree

5 files changed

+50
-10
lines changed

5 files changed

+50
-10
lines changed

package-lock.json

Lines changed: 4 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
"@typescript-eslint/eslint-plugin": "^8.49.0",
103103
"@typescript-eslint/parser": "^8.49.0",
104104
"autoprefixer": "^10.4.22",
105+
"baseline-browser-mapping": "^2.9.11",
105106
"eslint": "^9.39.1",
106107
"eslint-config-prettier": "^10.1.8",
107108
"eslint-plugin-prettier": "^5.5.4",

src/app/features/features.component.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ import { BreadcrumbItem } from '@shared/models/breadcrumb.model';
4949
import { Space } from '@shared/models/space.model';
5050
import { USER_PERMISSIONS_IMPORT_EXPORT, UserPermission } from '@shared/models/user.model';
5151
import { CanUserPerformPipe } from '@shared/pipes/can-user-perform.pipe';
52+
import { ContentService } from '@shared/services/content.service';
53+
import { SchemaService } from '@shared/services/schema.service';
5254
import { AppSettingsStore } from '@shared/stores/app-settings.store';
5355
import { LocalSettingsStore } from '@shared/stores/local-settings.store';
5456
import { SpaceStore } from '@shared/stores/space.store';
@@ -159,6 +161,8 @@ class FeaturesComponent {
159161
private readonly reposService = inject(ReposService);
160162
private auth = inject(Auth);
161163
private route = inject(ActivatedRoute);
164+
private readonly contentService = inject(ContentService);
165+
private readonly schemaService = inject(SchemaService);
162166

163167
public readonly sidebarService = inject(HlmSidebarService);
164168

@@ -247,6 +251,28 @@ class FeaturesComponent {
247251
}
248252
});
249253

254+
effect(() => {
255+
const selectedSpaceId = this.spaceStore.selectedSpaceId();
256+
if (selectedSpaceId) {
257+
this.contentService
258+
.findAllDocuments(selectedSpaceId)
259+
.pipe(takeUntilDestroyed(this.destroyRef))
260+
.subscribe({
261+
next: documents => {
262+
this.spaceStore.updateDocuments(documents);
263+
},
264+
});
265+
this.schemaService
266+
.findAll(selectedSpaceId)
267+
.pipe(takeUntilDestroyed(this.destroyRef))
268+
.subscribe({
269+
next: schemas => {
270+
this.spaceStore.updateSchemas(schemas);
271+
},
272+
});
273+
}
274+
});
275+
250276
this.router.events
251277
.pipe(
252278
filter(event => event instanceof NavigationEnd),

src/app/features/spaces/contents/contents-routing.module.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { BreadcrumbItem } from '@shared/models/breadcrumb.model';
55
import { ContentDocument } from '@shared/models/content.model';
66
import { Schema } from '@shared/models/schema.model';
77
import { ContentService } from '@shared/services/content.service';
8-
import { SchemaService } from '@shared/services/schema.service';
8+
import { SpaceStore } from '@shared/stores/space.store';
99
import { tap } from 'rxjs/operators';
1010
import { ContentsComponent } from './contents.component';
1111
import { EditDocumentComponent } from './edit-document/edit-document.component';
@@ -15,14 +15,12 @@ const documentResolver: ResolveFn<ContentDocument> = route => {
1515
return inject(ContentService).findDocumentById(spaceId, contentId).pipe(tap(console.log));
1616
};
1717

18-
const documentsResolver: ResolveFn<ContentDocument[]> = route => {
19-
const { spaceId } = route.params;
20-
return inject(ContentService).findAllDocuments(spaceId).pipe(tap(console.log));
18+
const documentsResolver: ResolveFn<ContentDocument[]> = () => {
19+
return inject(SpaceStore).documents();
2120
};
2221

23-
const schemasResolver: ResolveFn<Schema[]> = route => {
24-
const { spaceId } = route.params;
25-
return inject(SchemaService).findAll(spaceId).pipe(tap(console.log));
22+
const schemasResolver: ResolveFn<Schema[]> = () => {
23+
return inject(SpaceStore).schemas();
2624
};
2725

2826
const routes: Routes = [

src/app/shared/stores/space.store.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import { computed, inject } from '@angular/core';
22
import { tapResponse } from '@ngrx/operators';
33
import { patchState, signalStore, withComputed, withHooks, withMethods, withState } from '@ngrx/signals';
44
import { rxMethod } from '@ngrx/signals/rxjs-interop';
5+
import { ContentDocument } from '@shared/models/content.model';
6+
import { Schema } from '@shared/models/schema.model';
57
import { Space, SpaceEnvironment } from '@shared/models/space.model';
68
import { SpaceService } from '@shared/services/space.service';
79
import { pipe, switchMap } from 'rxjs';
@@ -15,6 +17,8 @@ export type SpaceState = {
1517
contentPath: PathItem[];
1618
assetPath: PathItem[];
1719
environment: SpaceEnvironment | undefined;
20+
schemas: Schema[];
21+
documents: ContentDocument[];
1822
};
1923

2024
export type PathItem = {
@@ -28,6 +32,8 @@ const initialState: SpaceState = {
2832
contentPath: DEFAULT_PATH,
2933
assetPath: DEFAULT_PATH,
3034
environment: undefined,
35+
schemas: [],
36+
documents: [],
3137
};
3238

3339
const initialStateFactory = (): SpaceState => {
@@ -129,6 +135,14 @@ export const SpaceStore = signalStore(
129135
console.log('changeEnvironment', environment);
130136
patchState(state, { environment });
131137
},
138+
updateSchemas: (schemas: Schema[]) => {
139+
console.log('updateSchemas', schemas);
140+
patchState(state, { schemas });
141+
},
142+
updateDocuments: (documents: ContentDocument[]) => {
143+
console.log('updateDocuments', documents);
144+
patchState(state, { documents });
145+
},
132146
};
133147
}),
134148
withComputed(state => {

0 commit comments

Comments
 (0)