UNPKG

9s-fe-core

Version:

Core functionalities for authentication, configuration, and repository management.

69 lines (68 loc) 3.22 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useFirebase = exports.FirebaseProvider = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const firebaseMessaging_1 = require("../core/firebaseMessaging"); const FirebaseContext = (0, react_1.createContext)(undefined); const FirebaseProvider = ({ children }) => { const [token, setToken] = (0, react_1.useState)(null); const [message, setMessage] = (0, react_1.useState)(null); const [isFirebaseInitialized, setIsFirebaseInitialized] = (0, react_1.useState)(false); (0, react_1.useEffect)(() => { // Khởi tạo Firebase (0, firebaseMessaging_1.initializeFirebase)(); setIsFirebaseInitialized(true); // Yêu cầu quyền thông báo và lấy token (0, firebaseMessaging_1.requestPermissionAndGetToken)().then((token) => { if (token) { console.log('Token for push notifications: ', token); setToken(token); } }); // Lắng nghe thông báo khi ứng dụng đang mở (0, firebaseMessaging_1.onMessageListener)().then((payload) => { console.log('Received foreground message: ', payload); setMessage(payload); }); }, []); // Hàm yêu cầu quyền thông báo và lấy token const handleRequestPermissionAndGetToken = () => __awaiter(void 0, void 0, void 0, function* () { try { const token = yield (0, firebaseMessaging_1.requestPermissionAndGetToken)(); if (token) { console.log('Notification permission granted. Token:', token); setToken(token); // Lưu token vào state } return token; } catch (error) { console.error('Failed to get notification permission:', error); return null; } }); return ((0, jsx_runtime_1.jsx)(FirebaseContext.Provider, { value: { token, message, isFirebaseInitialized, requestPermissionAndGetToken: handleRequestPermissionAndGetToken, // Cung cấp hàm qua context }, children: children })); }; exports.FirebaseProvider = FirebaseProvider; const useFirebase = () => { const context = (0, react_1.useContext)(FirebaseContext); if (!context) { throw new Error('useFirebase must be used within a FirebaseProvider'); } return context; }; exports.useFirebase = useFirebase;