initial commit
This commit is contained in:
BIN
public/favicon.png
Normal file
BIN
public/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.0 KiB |
67
public/firebase-messaging-sw.js
Normal file
67
public/firebase-messaging-sw.js
Normal file
@@ -0,0 +1,67 @@
|
||||
// Give the service worker access to Firebase Messaging.
|
||||
// Note that you can only use Firebase Messaging here. Other Firebase libraries
|
||||
// are not available in the service worker.
|
||||
// Replace 10.13.2 with latest version of the Firebase JS SDK.
|
||||
// eslint-disable-next-line no-undef
|
||||
importScripts('https://www.gstatic.com/firebasejs/10.13.2/firebase-app-compat.js');
|
||||
// eslint-disable-next-line no-undef
|
||||
importScripts('https://www.gstatic.com/firebasejs/10.13.2/firebase-messaging-compat.js');
|
||||
|
||||
// Initialize the Firebase app in the service worker by passing in
|
||||
// your app's Firebase config object.
|
||||
// https://firebase.google.com/docs/web/setup#config-object
|
||||
// eslint-disable-next-line no-undef
|
||||
firebase.initializeApp({
|
||||
apiKey: ' AIzaSyACBg8oyAR2DWMu4xW85gx5thpRgxnvI_0',
|
||||
authDomain: 'nearle-gear.firebaseapp.com',
|
||||
databaseURL: 'https://nearle-gear-default-rtdb.firebaseio.com',
|
||||
projectId: 'nearle-gear',
|
||||
storageBucket: 'nearle-gear.appspot.com',
|
||||
messagingSenderId: '140444764229',
|
||||
appId: '1:140444764229:web:e5ed6259a92d0532283b2c',
|
||||
measurementId: 'G-3YQ4DNMXE5'
|
||||
});
|
||||
|
||||
// Retrieve an instance of Firebase Messaging so that it can handle background
|
||||
// messages.
|
||||
// eslint-disable-next-line no-undef
|
||||
const messaging = firebase.messaging();
|
||||
|
||||
// why here
|
||||
|
||||
// When your web app is in the background or closed, the browser shuts down your React app’s JS context (like your firebase.js, App.js, etc.). At this point:
|
||||
// Only a Service Worker (like firebase-messaging-sw.js) is allowed to run.
|
||||
// It listens for messages even when your app is not active.
|
||||
// Firebase automatically routes background messages to that service worker.
|
||||
// So you must use onBackgroundMessage() in the service worker.
|
||||
// 🔁 Think of the service worker like a "headless background listener" running outside your React app.
|
||||
|
||||
// ========================== || temporarily add for mobile correct notification ========================== ||
|
||||
self.addEventListener('notificationclick', (event) => {
|
||||
event.notification.close();
|
||||
const targetUrl = '/'; // TODO: route where you want to land the user
|
||||
|
||||
event.waitUntil(
|
||||
clients.matchAll({ type: 'window', includeUncontrolled: true }).then((clientList) => {
|
||||
for (const client of clientList) {
|
||||
// Reuse an existing tab
|
||||
if ('focus' in client) return client.focus();
|
||||
}
|
||||
if (clients.openWindow) return clients.openWindow(targetUrl);
|
||||
})
|
||||
);
|
||||
});
|
||||
// ========================== || temporarily add for mobile correct notification ========================== ||
|
||||
|
||||
messaging.onBackgroundMessage((payload) => {
|
||||
console.log('[firebase-messaging-sw.js] Received background message ', payload);
|
||||
// Customize notification here
|
||||
const notificationTitle = payload.notification.title;
|
||||
const notificationOptions = {
|
||||
body: payload.notification.body,
|
||||
icon: payload.notification.image
|
||||
};
|
||||
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
self.registration.showNotification(notificationTitle, notificationOptions);
|
||||
});
|
||||
66
public/index.html
Normal file
66
public/index.html
Normal file
@@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%PUBLIC_URL%/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="Nearle Neighbourhood commerce" />
|
||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
|
||||
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
|
||||
crossorigin=""
|
||||
/>
|
||||
<script
|
||||
src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"
|
||||
integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo="
|
||||
crossorigin=""
|
||||
></script>
|
||||
|
||||
<!--
|
||||
Notice the use of %PUBLIC_URL% in the tags above.
|
||||
It will be replaced with the URL of the `public` folder during the build.
|
||||
Only files inside the `public` folder can be referenced from the HTML.
|
||||
|
||||
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||
work correctly both with client-side routing and a non-root public URL.
|
||||
Learn how to configure a non-root public URL by running `npm run build`.
|
||||
-->
|
||||
<title>Nearle Console</title>
|
||||
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" />
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Poppins:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap&family=Public+Sans:wght@400;500;600;700"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
|
||||
<!-- this is to resolve issue in old safari browser in tablet -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/resize-observer-polyfill@1.5.1/dist/ResizeObserver.min.js"></script>
|
||||
|
||||
<!-- google address autocomplete -->
|
||||
<!-- <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDQ2c_pOSOFYSjxGMwkFvCVWKjYOM9siow&libraries=places"></script> -->
|
||||
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBhkGfnq27sN0wV5y_S-M2KojpFTk_by-Q&libraries=places"></script>
|
||||
|
||||
<style>
|
||||
.datedialog > div > div > .MuiPaper-root {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
<!--
|
||||
This HTML file is a template.
|
||||
If you open it directly in the browser, you will see an empty page.
|
||||
|
||||
You can add webfonts, meta tags, or analytics to this file.
|
||||
The build step will place the bundled scripts into the <body> tag.
|
||||
|
||||
To begin the development, run `npm start` or `yarn start`.
|
||||
To create a production bundle, use `npm run build` or `yarn build`.
|
||||
-->
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user