@smartsoft001-mobilems/claude-plugins 2.100.0 → 2.101.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -60,6 +60,7 @@ list — re-implementing framework code is a defect, not a shortcut:
|
|
|
60
60
|
| a masonry grid (`new Masonry(...)`, per-page masonry JS/CSS) | `<smart-mobilems-masonry-grid>` (`MasonryGridComponent`) with a `#masonryContentTpl`; the `Masonry` provider only feeds it |
|
|
61
61
|
| filter state / hand-built `query` arrays | `FiltersBaseComponent<Article>` + its `FiltersContext` accessors (`searchText`, `authors`, `cycles`, `publicationDateFrom/To`, `page`, `sort`, …) |
|
|
62
62
|
| list/detail plumbing (facade wiring, id-from-route, PDF) | the `ArticlesListComponent` / `ArticlesItemComponent` base classes |
|
|
63
|
+
| CMS preview logic (query params, credentialed fetch, states) | the `ArticlesPreviewComponent` base class — the app's `/article-preview` component is view-only |
|
|
63
64
|
| media URLs, meta/OG tags, filter dictionaries, modals, WCAG | `FileUrlService`, `SeoService`/`MetaService`, `DictionaryService`, `ModalService`, `WcagService` |
|
|
64
65
|
| a content-block renderer | `WidgetComponent` + the `ArticleWidgetType` map |
|
|
65
66
|
|
|
@@ -94,7 +95,8 @@ README) — never a per-module copy. `scripts/verify-module.sh` fails the run on
|
|
|
94
95
|
SSR factory. Add the lazy `<route>` route to `appRoutes` in `apps/web/src/app/app.routes.ts`, and a
|
|
95
96
|
matching child under the `wyszukaj/:text` search route if the module's results belong in site search.
|
|
96
97
|
Also build the app's **`/article-preview` page** if it isn't there yet (it previews an `Article`, so
|
|
97
|
-
it belongs to the articles feature, not the foundation) —
|
|
98
|
+
it belongs to the articles feature, not the foundation) — component, client route **and** the
|
|
99
|
+
`RenderMode.Client` server route in `app.routes.server.ts`; idempotent across runs; see
|
|
98
100
|
`references/module-and-routes.md`.
|
|
99
101
|
5. **Article card shared components** — see `references/shared-components.md`: build the module's grid
|
|
100
102
|
and list cards (`<name>-grid-item`, `<name>-list-item`) in `libs/shared/angular` and export them; if
|
|
@@ -160,7 +160,12 @@ feature — the foundation deliberately leaves it out. Build it the first time a
|
|
|
160
160
|
added, and skip it if it already exists (idempotent across article-module runs):
|
|
161
161
|
|
|
162
162
|
1. Copy `apps/web/src/app/article-preview/` (`.component.ts` + `.html`) from the reference app, thread
|
|
163
|
-
`<PREFIX>`.
|
|
163
|
+
`<PREFIX>`. The component **extends `ArticlesPreviewComponent`** from
|
|
164
|
+
`@smartsoft001-mobilems/articles-shell-angular` and owns only the view (imports, the
|
|
165
|
+
`PARENT_TITLE_TOKEN` provider and an effect feeding `plainTitle()` into it). Do not re-implement
|
|
166
|
+
query-param handling, the credentialed fetch or the `loading` / `noLogin` / `noQueryParams` states —
|
|
167
|
+
the base exposes them, plus `item`, `widgets` and `authorsText`. If the app's thematic-paths route
|
|
168
|
+
is not `/sciezki-tematyczne`, override `protected readonly thematicPathRoute`.
|
|
164
169
|
2. Add its route to `appRoutes` in `apps/web/src/app/app.routes.ts` (a plain top-level route, before
|
|
165
170
|
the `**` catch-all):
|
|
166
171
|
|
|
@@ -173,3 +178,15 @@ added, and skip it if it already exists (idempotent across article-module runs):
|
|
|
173
178
|
),
|
|
174
179
|
},
|
|
175
180
|
```
|
|
181
|
+
|
|
182
|
+
3. Add its server route to `serverRoutes` in `apps/web/src/app/app.routes.server.ts`, before the
|
|
183
|
+
`**` catch-all. This step is **mandatory**: the preview fetches `dataUrl` with `withCredentials`,
|
|
184
|
+
and the CMS session cookie exists only in the browser. Rendered on the server, the request has no
|
|
185
|
+
cookie, the page lands in the `noLogin` state and hydration replays that error.
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
{
|
|
189
|
+
path: 'article-preview',
|
|
190
|
+
renderMode: RenderMode.Client,
|
|
191
|
+
},
|
|
192
|
+
```
|