mirror of
https://github.com/Zagrios/bs-manager.git
synced 2026-07-03 14:08:25 +02:00
add notification to enable OneClicks if not
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { NavBar } from "../components/nav-bar/nav-bar.component";
|
||||
import TitleBar from "../components/title-bar/title-bar.component";
|
||||
import { Routes, Route, useLocation } from "react-router-dom";
|
||||
import { Routes, Route, useLocation, useNavigate } from "react-router-dom";
|
||||
import { AvailableVersionsList } from "../pages/available-versions-list.components";
|
||||
import { VersionViewer } from "../pages/version-viewer.component";
|
||||
import { Modal } from "../components/modal/modal.component";
|
||||
@@ -14,24 +14,83 @@ import { MapsPage } from "../pages/maps-page.component";
|
||||
import "tailwindcss/tailwind.css";
|
||||
import { BsmIframeView } from "../components/shared/bsm-map-preview.component";
|
||||
import 'tippy.js/dist/tippy.css';
|
||||
import { MapsManagerService } from "renderer/services/maps-manager.service";
|
||||
import { PlaylistsManagerService } from "renderer/services/playlists-manager.service";
|
||||
import { ModelsManagerService } from "renderer/services/models-manager.service";
|
||||
import { NotificationService } from "renderer/services/notification.service";
|
||||
import { timer } from "rxjs";
|
||||
import { ConfigurationService } from "renderer/services/configuration.service";
|
||||
|
||||
export default function App() {
|
||||
|
||||
const themeService = ThemeService.getInstance();
|
||||
const pageState = PageStateService.getInstance();
|
||||
const maps = MapsManagerService.getInstance();
|
||||
const playlists = PlaylistsManagerService.getInstance();
|
||||
const models = ModelsManagerService.getInstance();
|
||||
const notification = NotificationService.getInstance();
|
||||
const config = ConfigurationService.getInstance();
|
||||
|
||||
const location = useLocation();
|
||||
const navigate = useNavigate();
|
||||
|
||||
useEffect(() => {
|
||||
themeService.theme$.subscribe(() => {
|
||||
if(themeService.isDark || (themeService.isOS && window.matchMedia('(prefers-color-scheme: dark)').matches)){ return document.documentElement.classList.add('dark'); }
|
||||
document.documentElement.classList.remove('dark');
|
||||
});
|
||||
|
||||
checkOneClicks();
|
||||
|
||||
}, []);
|
||||
|
||||
const checkOneClicks = async () => {
|
||||
|
||||
if(config.get("not-remind-oneclick") === true){ return; }
|
||||
|
||||
await timer(2_000).toPromise();
|
||||
|
||||
const oneClicks = await Promise.all([
|
||||
maps.isDeepLinksEnabled(),
|
||||
playlists.isDeepLinksEnabled(),
|
||||
models.isDeepLinksEnabled()
|
||||
]);
|
||||
|
||||
if(!oneClicks.some(enabled => enabled === false)){ return; }
|
||||
|
||||
const choice = await notification.notifyWarning({
|
||||
title: "notifications.settings.additional-content.deep-link.check-all-enabled.title",
|
||||
desc: "notifications.settings.additional-content.deep-link.check-all-enabled.description",
|
||||
duration: 10_000,
|
||||
actions: [
|
||||
{id: "0", title: "notifications.settings.additional-content.deep-link.check-all-enabled.actions.settings"},
|
||||
{id: "1", title: "notifications.settings.additional-content.deep-link.check-all-enabled.actions.not-remind", cancel: true}
|
||||
]
|
||||
});
|
||||
|
||||
if(choice === "0"){
|
||||
return navigate("/settings#one-clicks");
|
||||
}
|
||||
|
||||
if(choice === "1"){
|
||||
config.set("not-remind-oneclick", true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
pageState.setLocation(location);
|
||||
|
||||
if(!location.hash){ return; }
|
||||
|
||||
const hash = location.hash.replace("#", "");
|
||||
const el = document.getElementById(hash);
|
||||
|
||||
if(!el){ return; }
|
||||
|
||||
el.scrollIntoView({block: "start", behavior: "smooth"});
|
||||
|
||||
}, [location])
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user