Initial commit of MindShift CBT Therapy app
This commit is contained in:
11
MindShift-Windows/assets/browserconfig.xml
Normal file
11
MindShift-Windows/assets/browserconfig.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square70x70logo src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzAiIGhlaWdodD0iNzAiIHZpZXdCb3g9IjAgMCA3MCA3MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjcwIiBoZWlnaHQ9IjcwIiByeD0iMTAiIGZpbGw9InVybCgjZ3JhZGllbnQwX2xpbmVhcl8zXzMpIi8+CjxwYXRoIGQ9Ik0zNSAyMUMzMi45MjkgMjEgMzEuNSAyMi45MjkgMzEuNSAyNUMzMS41IDI3LjA3MSAzMi45MjkgMjkgMzUgMjlDMzcuMDcxIDI5IDM4LjUgMjcuMDcxIDM4LjUgMjVDMzguNSAyMi45MjkgMzcuMDcxIDIxIDM1IDIxWiIgZmlsbD0id2hpdGUiLz4KPHA+PC9wPgo8cGF0aCBkPSJNMzUgMzVDMzMuMDQzIDM1IDMxLjUgMzYuNTQzIDMxLjUgMzguNUMzMS41IDQwLjQ1NyAzMy4wNDMgNDIgMzUgNDJDMzYuOTU3IDQyIDM4LjUgNDAuNDU3IDM4LjUgMzguNUMzOC41IDM2LjU0MyAzNi45NTcgMzUgMzUgMzVaIiBmaWxsPSJ3aGl0ZSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudDBfbGluZWFyXzNfMyIgeDE9IjAiIHkxPSIwIiB4Mj0iNzAiIHkyPSI3MCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjRkY2QjZCIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGQjc0RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPg=="/>
|
||||
<square150x150logo src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCIgdmlld0JveD0iMCAwIDE1MCAxNTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiByeD0iMjAiIGZpbGw9InVybCgjZ3JhZGllbnQwX2xpbmVhcl80XzQpIi8+CjxwYXRoIGQ9Ik03NSA0NUM3MC41MTc5IDQ1IDY3IDQ4LjUxNzkgNjcgNTNDNjcgNTcuNDgyMSA3MC41MTc5IDYxIDc1IDYxQzc5LjQ4MjEgNjEgODMgNTcuNDgyMSA4MyA1M0M4MyA0OC41MTc5IDc5LjQ4MjEgNDUgNzUgNDVaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNjAgNzVDNjAuMTM2NyA3MC4yMzgzIDYyLjIzODIgNjUuNDc2NyA2NS4yMzIzIDYxLjgzMzNDNjguMjI2NCA1OC4xOSA3Mi4yMjMyIDU1Ljg5MjggNzYuNzYwNiA1NS44OTI4QzgxLjI5OCA1NS44OTI4IDg1LjI5NDYgNTguMTkgODguMjg4NyA2MS44MzMzQzkxLjI4MjggNjUuNDc2NyA5My4zNjMzIDcwLjIzODMgOTMuMzI1IDc1QzkzLjI4NjcgNzkuNzYxNyA5MS4yODI4IDg0LjUyMzMgODguMjg4NyA4OC4xNjY3Qzg1LjI5NDYgOTEuODEgODEuMjk4IDk0LjEwNzIgNzYuNzYwNiA5NC4xMDcyQzcyLjIyMzIgOTQuMTA3MiA2OC4yMjY0IDkxLjgxIDY1LjIzMjMgODguMTY2N0M2Mi4yMzgyIDg0LjUyMzMgNjAuMTM2NyA3OS43NjE3IDYwIDc1WiIgZmlsbD0id2hpdGUiLz4KPHA+PC9wPgo8cGF0aCBkPSJNNzUgMTA1QzY2LjcxNTcgMTA1IDYwIDk4LjI4NDMgNjAgOTBDNjAgODEuNzE1NyA2Ni43MTU3IDc1IDc1IDc1QzgzLjI4NDMgNzUgOTAgODEuNzE1NyA5MCA5MEM5MCA5OC4yODQzIDgzLjI4NDMgMTA1IDc1IDEwNVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9ImdyYWRpZW50MF9saW5lYXJfNF80IiB4MT0iMCIgeTE9IjAiIHgyPSIxNTAiIHkyPSIxNTAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0ZGNkI2QiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRkI3NEQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4="/>
|
||||
<square310x310logo src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzEwIiBoZWlnaHQ9IjMxMCIgdmlld0JveD0iMCAwIDMxMCAzMTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMTAiIGhlaWdodD0iMzEwIiByeD0iNDAiIGZpbGw9InVybCgjZ3JhZGllbnQwX2xpbmVhcl81XzUpIi8+CjxwYXRoIGQ9Ik0xNTUgOTNDMTQ2LjE5MyA5MyAxMzkgMTAwLjE5MyAxMzkgMTA5QzEzOSAxMTcuODA3IDE0Ni4xOTMgMTI1IDE1NSAxMjVDMTYzLjgwNyAxMjUgMTcxIDExNy44MDcgMTcxIDEwOUMxNzEgMTAwLjE5MyAxNjMuODA3IDkzIDE1NSA5M1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMjQgMTU1QzEyNC4yNzMgMTQ1LjQ3NyAxMjguNDc2IDEzNS45NTMgMTM0LjQ2NSAxMjguNjY3QzE0MC40NTMgMTIxLjM4IDE0OC40NjQgMTE2Ljc4NiAxNTcuNTIxIDExNi43ODZDMTY2LjU3OCAxMTYuNzg2IDE3NC41ODkgMTIxLjM4IDE4MC41NzggMTI4LjY2N0MxODYuNTY2IDEzNS45NTMgMTkwLjcyNyAxNDUuNDc3IDE5MC42NSAxNTVDMTkwLjU3MyAxNjQuNTIzIDE4Ni41NjYgMTc0LjA0NyAxODAuNTc4IDE4MS4zMzNDMTc0LjU4OSAxODguNjIgMTY2LjU3OCAxOTMuMjE0IDE1Ny41MjEgMTkzLjIxNEMxNDguNDY0IDE5My4yMTQgMTQwLjQ1MyAxODguNjIgMTM0LjQ2NSAxODEuMzMzQzEyOC40NzYgMTc0LjA0NyAxMjQuMjczIDE2NC41MjMgMTI0IDE1NVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xNTUgMjEwQzEzMy40MzEgMjEwIDExNiAxOTIuNTY5IDExNiAxNzFDMTE2IDE0OS40MzEgMTMzLjQzMSAxMzIgMTU1IDEzMkMxNzYuNTY5IDEzMiAxOTQgMTQ5LjQzMSAxOTQgMTcxQzE5NCAxOTIuNTY5IDE3Ni41NjkgMjEwIDE1NSAyMTBaIiBmaWxsPSJ3aGl0ZSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudDBfbGluZWFyXzVfNSIgeDE9IjAiIHkxPSIwIiB4Mj0iMzEwIiB5Mj0iMzEwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRjZCNkIiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkZCNzREIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+"/>
|
||||
<TileColor>#FF6B6B</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
||||
27
MindShift-Windows/assets/manifest.json
Normal file
27
MindShift-Windows/assets/manifest.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "MindShift - CBT Therapy App",
|
||||
"short_name": "MindShift",
|
||||
"description": "Your personal CBT therapy companion for mood management and mental wellness",
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"background_color": "#FFB74D",
|
||||
"theme_color": "#FF6B6B",
|
||||
"orientation": "portrait-primary",
|
||||
"icons": [
|
||||
{
|
||||
"src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkyIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDE5MiAxOTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxOTIiIGhlaWdodD0iMTkyIiByeD0iMjQiIGZpbGw9InVybCgjZ3JhZGllbnQwX2xpbmVhcl8xXzEpIi8+CjxwYXRoIGQ9Ik05NiA0OEM5MC40NzcyIDQ4IDg2IDUyLjQ3NzIgODYgNjhDODYgNzMuNTIyOCA5MC40NzcyIDc4IDk2IDc4QzEwMS41MjIgNzggMTA2IDczLjUyMjggMTA2IDY4QzEwNiA2Mi40NzcyIDEwMS41MjIgNDggOTYgNDhaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYgOTZDNzYuMDc0NSA5MC4zMTc3IDc4LjMxNzcgODQuNjQ1MiA4Mi4xODU0IDgwLjE4NTRDODYuMDUzMSA3NS43MjU2IDkxLjI1OTEgNzIuNjg5NyA5Ni43MjA5IDcyLjY4OTdDMTAyLjE4MiA3Mi42ODk3IDEwNy4zODkgNzUuNzI1NiAxMTEuMjU2IDgwLjE4NTRDMTE1LjEyNCA4NC42NDUyIDExNy4zOTUgOTAuMzE3NyAxMTcuMzU1IDk2QzExNy4zMTUgMTAxLjY4MiAxMTUuMDQ0IDEwNy4zNTUgMTExLjE3NiAxMTEuODE0QzEwNy4zMDkgMTE2LjI3NCAxMDIuMTgyIDExOS4zMSA5Ni43MjA5IDExOS4zMUM5MS4yNTkxIDExOS4zMSA4Ni4wNTMxIDExNi4yNzQgODIuMTg1NCAxMTEuODE0Qzc4LjMxNzcgMTA3LjM1NSA3Ni4wNzQ1IDEwMS42ODIgNzYgOTZaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTYgMTI0Qzg4LjI2ODAxIDEyNCA4MiAxMTcuNzMyIDgyIDExMEM4MiAxMDIuMjY4IDg4LjI2ODAxIDk2IDk2IDk2QzEwMy43MzIgOTYgMTEwIDEwMi4yNjggMTEwIDExMEMxMTAgMTE3LjczMiAxMDMuNzMyIDEyNCA5NiAxMjRaIiBmaWxsPSJ3aGl0ZSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudDBfbGluZWFyXzFfMSIgeDE9IjAiIHkxPSIwIiB4Mj0iMTkyIiB5Mj0iMTkyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRjZCNkIiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkZCNzREIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+",
|
||||
"sizes": "192x192",
|
||||
"type": "image/svg+xml"
|
||||
},
|
||||
{
|
||||
"src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiByeD0iNjQiIGZpbGw9InVybCgjZ3JhZGllbnQwX2xpbmVhcl8yXzIpIi8+CjxwYXRoIGQ9Ik0yNTYgMTI4QzI0MS4yNTUgMTI4IDIyOSAxNDAuMjU1IDIyOSAxNTVDMjI5IDE2OS43NDUgMjQxLjI1NSAxODIgMjU2IDE4MkMyNzAuNzQ1IDE4MiAyODMgMTY5Ljc0NSAyODMgMTU1QzI4MyAxNDAuMjU1IDI3MC43NDUgMTI4IDI1NiAxMjhaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjA0IDI1NkMyMDQuMTk4IDI0MS44MzYgMjA4LjgzNiAyMjcuNjcyIDIxNi40NjkgMjE1LjEyMkMyMjQuMTAyIDIwMi41NzIgMjM0LjMwOSAxOTIuMTg5IDI0Ni4yNTYgMTkyLjE4OUMyNTguMjAzIDE5Mi4xODkgMjY4LjQxIDIwMi41NzIgMjc2LjA0MyAyMTUuMTIyQzI4My42NzYgMjI3LjY3MiAyODguMzE0IDI0MS44MzYgMjg4LjI1NiAyNTZDMjg4LjE5OCAyNzAuMTY0IDI4My41NiAyODQuMzI4IDI3NS45MjcgMjk2Ljg3OEMyNjguMjk0IDMwOS40MjggMjU4LjA4NyAzMTkuODExIDI0Ni4xNCAzMTkuODExQzIzNC4xOTMgMzE5LjgxMSAyMjMuOTg2IDMwOS40MjggMjE2LjM1MyAyOTYuODc4QzIwOC43MiAyODQuMzI4IDIwNC4wODIgMjcwLjE2NCAyMDQgMjU2WiIgZmlsbD0id2hpdGUiLz4KPHA+PC9wPgo8cGF0aCBkPSJNMjU2IDMzMkMyMzUuMDg4IDMzMiAyMTggMzE0LjkxMiAyMTggMjk0QzIxOCAyNzMuMDg4IDIzNS4wODggMjU2IDI1NiAyNTZDMjc2LjkxMiAyNTYgMjk0IDI3My4wODggMjk0IDI5NEMyOTQgMzE0LjkxMiAyNzYuOTEyIDMzMiAyNTYgMzMyWiIgZmlsbD0id2hpdGUiLz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0iZ3JhZGllbnQwX2xpbmVhcl8yXzIiIHgxPSIwIiB5MT0iMCIgeDI9IjUxMiIgeTI9IjUxMiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjRkY2QjZCIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGQjc0RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPg==",
|
||||
"sizes": "512x512",
|
||||
"type": "image/svg+xml"
|
||||
}
|
||||
],
|
||||
"categories": ["health", "fitness", "lifestyle"],
|
||||
"lang": "en",
|
||||
"dir": "ltr",
|
||||
"scope": "/",
|
||||
"prefer_related_applications": false
|
||||
}
|
||||
127
MindShift-Windows/assets/sw.js
Normal file
127
MindShift-Windows/assets/sw.js
Normal file
@@ -0,0 +1,127 @@
|
||||
const CACHE_NAME = 'mindshift-v1';
|
||||
const urlsToCache = [
|
||||
'/',
|
||||
'/cbt-therapy-app-mockup.html',
|
||||
'/manifest.json'
|
||||
];
|
||||
|
||||
// Install event - cache resources
|
||||
self.addEventListener('install', function(event) {
|
||||
event.waitUntil(
|
||||
caches.open(CACHE_NAME)
|
||||
.then(function(cache) {
|
||||
console.log('Opened cache');
|
||||
return cache.addAll(urlsToCache);
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
// Fetch event - serve from cache when offline
|
||||
self.addEventListener('fetch', function(event) {
|
||||
event.respondWith(
|
||||
caches.match(event.request)
|
||||
.then(function(response) {
|
||||
// Cache hit - return response
|
||||
if (response) {
|
||||
return response;
|
||||
}
|
||||
|
||||
// Clone the request
|
||||
var fetchRequest = event.request.clone();
|
||||
|
||||
return fetch(fetchRequest).then(
|
||||
function(response) {
|
||||
// Check if valid response
|
||||
if(!response || response.status !== 200 || response.type !== 'basic') {
|
||||
return response;
|
||||
}
|
||||
|
||||
// Clone the response
|
||||
var responseToCache = response.clone();
|
||||
|
||||
caches.open(CACHE_NAME)
|
||||
.then(function(cache) {
|
||||
cache.put(event.request, responseToCache);
|
||||
});
|
||||
|
||||
return response;
|
||||
}
|
||||
).catch(function() {
|
||||
// Offline fallback for HTML pages
|
||||
if (event.request.destination === 'document') {
|
||||
return caches.match('/cbt-therapy-app-mockup.html');
|
||||
}
|
||||
});
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
// Activate event - clean up old caches
|
||||
self.addEventListener('activate', function(event) {
|
||||
event.waitUntil(
|
||||
caches.keys().then(function(cacheNames) {
|
||||
return Promise.all(
|
||||
cacheNames.map(function(cacheName) {
|
||||
if (cacheName !== CACHE_NAME) {
|
||||
console.log('Deleting old cache:', cacheName);
|
||||
return caches.delete(cacheName);
|
||||
}
|
||||
})
|
||||
);
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
// Background sync for offline actions
|
||||
self.addEventListener('sync', function(event) {
|
||||
if (event.tag === 'background-sync') {
|
||||
event.waitUntil(doBackgroundSync());
|
||||
}
|
||||
});
|
||||
|
||||
function doBackgroundSync() {
|
||||
// Handle syncing offline data when back online
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
// Push notification handler
|
||||
self.addEventListener('push', function(event) {
|
||||
const options = {
|
||||
body: event.data ? event.data.text() : 'Time for your CBT exercise!',
|
||||
icon: '/data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkyIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDE5MiAxOTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxOTIiIGhlaWdodD0iMTkyIiByeD0iMjQiIGZpbGw9InVybCgjZ3JhZGllbnQwX2xpbmVhcl8xXzEpIi8+CjxwYXRoIGQ9Ik05NiA0OEM5MC40NzcyIDQ4IDg2IDUyLjQ3NzIgODYgNjhDODYgNzMuNTIyOCA5MC40NzcyIDc4IDk2IDc4QzEwMS41MjIgNzggMTA2IDczLjUyMjggMTA2IDY4QzEwNiA2Mi40NzcyIDEwMS41MjIgNDggOTYgNDhaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYgOTZDNzYuMDc0NSA5MC4zMTc3IDc4LjMxNzcgODQuNjQ1MiA4Mi4xODU0IDgwLjE4NTRDODYuMDUzMSA3NS43MjU2IDkxLjI1OTEgNzIuNjg5NyA5Ni43MjA5IDcyLjY4OTdDMTAyLjE4MiA3Mi42ODk3IDEwNy4zODkgNzUuNzI1NiAxMTEuMjU2IDgwLjE4NTRDMTE1LjEyNCA4NC42NDUyIDExNy4zOTUgOTAuMzE3NyAxMTcuMzU1IDk2QzExNy4zMTUgMTAxLjY4MiAxMTUuMDQ0IDEwNy4zNTUgMTExLjE3NiAxMTEuODE0QzEwNy4zMDkgMTE2LjI3NCAxMDIuMTgyIDExOS4zMSA5Ni43MjA5IDExOS4zMUM5MS4yNTkxIDExOS4zMSA4Ni4wNTMxIDExNi4yNzQgODIuMTg1NCAxMTEuODE0Qzc4LjMxNzcgMTA3LjM1NSA3Ni4wNzQ1IDEwMS42ODIgNzYgOTZaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTYgMTI0Qzg4LjI2ODAxIDEyNCA4MiAxMTcuNzMyIDgyIDExMEM4MiAxMDIuMjY4IDg4LjI2ODAxIDk2IDk2IDk2QzEwMy43MzIgOTYgMTEwIDEwMi4yNjggMTEwIDExMEMxMTAgMTE3LjczMiAxMDMuNzMyIDEyNCA5NiAxMjRaIiBmaWxsPSJ3aGl0ZSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudDBfbGluZWFyXzFfMSIgeDE9IjAiIHkxPSIwIiB4Mj0iMTkyIiB5Mj0iMTkyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRjZCNkIiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkZCNzREIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+',
|
||||
badge: '/data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iMTIiIGZpbGw9IiNGRjZCNkIiLz4KPC9zdmc+',
|
||||
vibrate: [100, 50, 100],
|
||||
data: {
|
||||
dateOfArrival: Date.now(),
|
||||
primaryKey: 1
|
||||
},
|
||||
actions: [
|
||||
{
|
||||
action: 'explore',
|
||||
title: 'Open App',
|
||||
icon: '/data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE2IDJMMjggMTZMMTYgMzBMMCAxNkwxNiAyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+'
|
||||
},
|
||||
{
|
||||
action: 'close',
|
||||
title: 'Dismiss',
|
||||
icon: '/data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI0IDhMMTcgMTVMMjQgMjJMMjIgMjRMMTUgMTdMOCAyNEwxMCAyMkwxNyAxNUwxMCA4TDEyIDZMMTkgMTNMMTIgNkwyNCA4WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+'
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
event.waitUntil(
|
||||
self.registration.showNotification('MindShift', options)
|
||||
);
|
||||
});
|
||||
|
||||
// Notification click handler
|
||||
self.addEventListener('notificationclick', function(event) {
|
||||
event.notification.close();
|
||||
|
||||
if (event.action === 'explore') {
|
||||
// Open the app
|
||||
event.waitUntil(
|
||||
clients.openWindow('/')
|
||||
);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user