@live-change/frontend-base 0.9.33 → 0.9.34

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.
Files changed (2) hide show
  1. package/package.json +18 -18
  2. package/server-entry.js +23 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@live-change/frontend-base",
3
- "version": "0.9.33",
3
+ "version": "0.9.34",
4
4
  "scripts": {
5
5
  "memDev": "node server/start.js memDev --enableSessions --initScript ./init.js --templatePath ../../base-frontend/index.html",
6
6
  "localDevInit": "rm tmp.db; lcli localDev --enableSessions --initScript ./init.js",
@@ -35,21 +35,21 @@
35
35
  "@lezer/rust": "=1.0.1",
36
36
  "@lezer/sass": "=1.0.3",
37
37
  "@lezer/xml": "=1.0.2",
38
- "@live-change/cli": "^0.9.33",
39
- "@live-change/dao": "^0.9.33",
40
- "@live-change/dao-message": "^0.9.33",
41
- "@live-change/dao-sockjs": "^0.9.33",
42
- "@live-change/dao-vue3": "^0.9.33",
43
- "@live-change/dao-websocket": "^0.9.33",
44
- "@live-change/email-service": "^0.9.33",
45
- "@live-change/password-authentication-service": "^0.9.33",
46
- "@live-change/secret-code-service": "^0.9.33",
47
- "@live-change/secret-link-service": "^0.9.33",
48
- "@live-change/security-frontend": "^0.9.33",
49
- "@live-change/session-service": "^0.9.33",
50
- "@live-change/user-service": "^0.9.33",
51
- "@live-change/vue3-components": "^0.9.33",
52
- "@live-change/vue3-ssr": "^0.9.33",
38
+ "@live-change/cli": "^0.9.34",
39
+ "@live-change/dao": "^0.9.34",
40
+ "@live-change/dao-message": "^0.9.34",
41
+ "@live-change/dao-sockjs": "^0.9.34",
42
+ "@live-change/dao-vue3": "^0.9.34",
43
+ "@live-change/dao-websocket": "^0.9.34",
44
+ "@live-change/email-service": "^0.9.34",
45
+ "@live-change/password-authentication-service": "^0.9.34",
46
+ "@live-change/secret-code-service": "^0.9.34",
47
+ "@live-change/secret-link-service": "^0.9.34",
48
+ "@live-change/security-frontend": "^0.9.34",
49
+ "@live-change/session-service": "^0.9.34",
50
+ "@live-change/user-service": "^0.9.34",
51
+ "@live-change/vue3-components": "^0.9.34",
52
+ "@live-change/vue3-ssr": "^0.9.34",
53
53
  "@primevue/themes": "^4.2.5",
54
54
  "@tailwindcss/vite": "4.0.6",
55
55
  "@unhead/ssr": "^1.6.2",
@@ -105,7 +105,7 @@
105
105
  "vue3-scroll-border": "0.1.6"
106
106
  },
107
107
  "devDependencies": {
108
- "@live-change/codeceptjs-helper": "^0.9.33",
108
+ "@live-change/codeceptjs-helper": "^0.9.34",
109
109
  "codeceptjs": "^3.6.10",
110
110
  "generate-password": "1.7.1",
111
111
  "playwright": "1.49.1",
@@ -119,5 +119,5 @@
119
119
  "author": "Michał Łaszczewski <michal@laszczewski.pl>",
120
120
  "license": "BSD-3-Clause",
121
121
  "description": "",
122
- "gitHead": "c6eaa7764dc12b9489b74386b1227b71d0640e09"
122
+ "gitHead": "e5f22de77fe6a3c0a0e1b91d17593e195aaae3b3"
123
123
  }
package/server-entry.js CHANGED
@@ -6,6 +6,8 @@ import { createApp } from "./main.js"
6
6
  import { setTime } from "./time.js"
7
7
 
8
8
  import { renderHeadToString } from "@vueuse/head"
9
+ import { Theme } from '@primeuix/styled'
10
+ import { Base, BaseStyle } from '@primevue/core'
9
11
 
10
12
  function escapeHtml(unsafe) {
11
13
  return (''+unsafe)
@@ -51,25 +53,33 @@ export function serverEntry(App, createRouter, config = {}) {
51
53
  ...(config.prefetch ?? []).map(fn => fn(app, router, head)),
52
54
  api.preFetchRoute(router.currentRoute, router)
53
55
  ])
54
- // passing SSR context object which will be available via useSSRContext()
55
- // @vitejs/plugin-vue injects code into a component's setup() that registers
56
- // itself on ctx.modules. After the render, ctx.modules would contain all the
57
- // components that have been instantiated during this render call.
56
+
58
57
  const ctx = {}
59
- const html = await renderToString(app, ctx)
60
58
 
59
+ let usedStyles = new Set()
60
+ Base.setLoadedStyleName = async (name) => usedStyles.add(name)
61
+
62
+ const html = await renderToString(app, ctx)
63
+ // get the prerender cache data
61
64
  const data = api.prerenderCache.cacheData()
62
65
 
63
- // the SSR manifest generated by Vite contains module -> chunk/asset mapping
64
- // which we can then use to determine what files need to be preloaded for this
65
- // request.
66
+ const renderedHead = await renderHeadToString(head)
66
67
 
67
- const renderedHead = await renderHeadToString(head)
68
68
 
69
- /* const html = 'html'
70
- const renderedHead= 'head'
71
- const data = {}
72
- const ctx = { modules: [] }*/
69
+ const styleSheets = []
70
+ styleSheets.push(`<style type="text/css" data-primevue-style-id="layer-order">${
71
+ BaseStyle.getLayerOrderThemeCSS()}</style>`)
72
+ BaseStyle.getLayerOrderThemeCSS()
73
+
74
+ styleSheets.push(Theme.getCommonStyleSheet())
75
+ for(const name of usedStyles) {
76
+ styleSheets.push(Theme.getStyleSheet(name))
77
+ const styleObject = await import(`primevue/${name}/style`)
78
+ styleSheets.push(styleObject.default.getThemeStyleSheet())
79
+ }
80
+ styleSheets.push(BaseStyle.getThemeStyleSheet())
81
+
82
+ renderedHead.headTags += styleSheets.join('\n')
73
83
 
74
84
  return { html, data, meta: renderedHead, modules: ctx.modules, response }
75
85
  }