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 ///