diff --git a/zero.Backoffice.UI/app/modules/preview/preview-serviceworker.js b/zero.Backoffice.UI/app/modules/preview/preview-serviceworker.js
new file mode 100644
index 00000000..b10b2aba
--- /dev/null
+++ b/zero.Backoffice.UI/app/modules/preview/preview-serviceworker.js
@@ -0,0 +1,27 @@
+////if ('serviceWorker' in navigator)
+////{
+//// window.addEventListener('load', () =>
+//// {
+//// navigator.serviceWorker.register('sw.js').then(
+//// registration =>
+//// {
+//// console.log('Service worker registered with scope: ', registration.scope);
+//// },
+//// err =>
+//// {
+//// console.log('ServiceWorker registration failed: ', err);
+//// });
+//// });
+////}
+
+console.info('hi from worker');
+
+self.addEventListener('fetch', event =>
+{
+ console.info('fetch', event);
+ event.request.headers.append("zero-preview", "true");
+ event.respondWith(
+ fetch(event.request)
+ // intercept requests by handling event.request here
+ );
+});
\ No newline at end of file
diff --git a/zero.Backoffice.UI/app/modules/preview/preview.vue b/zero.Backoffice.UI/app/modules/preview/preview.vue
index 25efdaed..c6df22bc 100644
--- a/zero.Backoffice.UI/app/modules/preview/preview.vue
+++ b/zero.Backoffice.UI/app/modules/preview/preview.vue
@@ -19,7 +19,7 @@
created()
{
- this.src = 'http://localhost:2310' + this.$route.query.path + '?preview=true';
+ this.src = 'http://localhost:2310' + this.$route.query.path + '?zero_preview=true';
}
});
@@ -38,6 +38,11 @@
height: 100%;
position: relative;
background: var(--color-bg);
+
+ .-text
+ {
+ color: var(--color-text);
+ }
}
iframe.app-preview-frame
diff --git a/zero.Backoffice.UI/vite.config.js b/zero.Backoffice.UI/vite.config.js
index 2a17c94a..4900cfd4 100644
--- a/zero.Backoffice.UI/vite.config.js
+++ b/zero.Backoffice.UI/vite.config.js
@@ -80,6 +80,7 @@ let config = defineConfig({
alias: {
vue: path.resolve(__dirname, 'node_modules/@vue/compat'),
zero: path.resolve(__dirname, 'app'),
+ zeroworkers: path.resolve(__dirname, 'app/modules/preview'),
...pluginAliases,
}
},
diff --git a/zero.Core/Context/ZeroContext.cs b/zero.Core/Context/ZeroContext.cs
index 68eb6ced..b5c6b173 100644
--- a/zero.Core/Context/ZeroContext.cs
+++ b/zero.Core/Context/ZeroContext.cs
@@ -40,6 +40,9 @@ public class ZeroContext : IZeroContext
///
public ZeroContextScope Scope { get; private set; }
+ ///
+ public bool IsPreview { get; private set; }
+
protected IApplicationResolver AppResolver { get; private set; }
@@ -93,6 +96,9 @@ public class ZeroContext : IZeroContext
_resolved = true;
+ // check whether the current request is a preview request
+ IsPreview = context.Request.Query.ContainsKey("zero_preview");
+
// check if the current request is a backoffice request
IsBackofficeRequest = context.IsBackofficeRequest(Options.ZeroPath);
@@ -245,6 +251,11 @@ public interface IZeroContext
///
bool IsLoggedIntoBackoffice { get; }
+ ///
+ /// Determines whether the current request is a preview request
+ ///
+ bool IsPreview { get; }
+
///
/// Global zero options
///