handle deepLink from score saber AND try fix white border

This commit is contained in:
MathieuG-P
2022-12-19 01:55:20 +01:00
parent a786be653c
commit 714837286f
7 changed files with 37 additions and 27 deletions
+5
View File
@@ -9,4 +9,9 @@ ipcMain.on("open-window-then-close-all", async (event, request: IpcRequest<AppWi
windowManager.openWindow(request.args).then(window => {
windowManager.closeAllWindows(request.args);
});
});
ipcMain.on("close-all-windows", async (event, request: IpcRequest<AppWindow>) => {
const windowManager = WindowManagerService.getInstance();
windowManager.closeAllWindows(request.args);
});
+1 -2
View File
@@ -17,7 +17,6 @@ import { WindowManagerService } from './services/window-manager.service';
import { DeepLinkService } from './services/deep-link.service';
import { AppWindow } from 'shared/models/window-manager/app-window.model';
import { LocalMapsManagerService } from './services/maps/local-maps-manager.service';
import { argv } from 'process';
export const PRELOAD_PATH = app.isPackaged ? path.join(__dirname, 'preload.js') : path.join(__dirname, '../../.erb/dll/preload.js')
@@ -89,7 +88,7 @@ else{
app.whenReady().then(() => {
//process.argv.push("beatsaver://2d133");
process.argv.push("web+bsmap://BDE6A1F8FC7008247443CF3F810BBD8E910DD839");
initServicesMustBeInitialized();
@@ -141,8 +141,6 @@ export class LocalMapsManagerService {
this.windows.openWindow("oneclick-download-map.html");
console.log("oui");
ipcMain.once("one-click-map-info", async (event, req: IpcRequest<void>) => {
this.utils.ipcSend(req.responceChannel, {success: true, data: {id: mapId, isHash}});
});
@@ -16,10 +16,11 @@ export const BsmImage = forwardRef(({className, image, errorImage, placeholder,
const [isLoaded, setIsLoaded] = useState(false);
const styles: CSSProperties = (() => {
return {
return placeholder && {
...style,
...(!isLoaded && {backgroundImage: `url(${placeholder})`}),
...(!isLoaded && {backgroundSize: "cover"})
...(!isLoaded && {backgroundSize: "cover"}),
...(!isLoaded && {backgroundPosition: "center"}),
}
})();
+1 -1
View File
@@ -9,7 +9,7 @@
html, body{
margin: 0; padding: 0;
box-sizing: border-box;
}
html.dark{
@@ -20,6 +20,8 @@ export class WindowManagerService{
this.ipcService.sendLazy<AppWindow>("open-window-then-close-all", {args: window});
}
public closeAll(except?: AppWindow){
this.ipcService.sendLazy<AppWindow>("close-all-windows", {args: except});
}
}
@@ -7,6 +7,7 @@ import { MapsDownloaderService } from "renderer/services/maps-downloader.service
import { ProgressBarService } from "renderer/services/progress-bar.service";
import { ThemeService } from "renderer/services/theme.service";
import { BeatSaverService } from "renderer/services/thrird-partys/beat-saver.service";
import { WindowManagerService } from "renderer/services/window-manager.service";
import { BsvMapDetail } from "shared/models/maps";
import defaultImage from '../../../../assets/images/default-version-img.jpg'
@@ -17,6 +18,7 @@ export default function OneClickDownloadMap() {
const mapsDownloader = MapsDownloaderService.getInstance();
const themeService = ThemeService.getInstance();
const progressBar = ProgressBarService.getInstance();
const windows = WindowManagerService.getInstance();
const [mapInfo, setMapInfo] = useState<BsvMapDetail>(null);
@@ -30,25 +32,30 @@ export default function OneClickDownloadMap() {
});
progressBar.open();
ipc.send<{id: string, isHash: boolean}>("one-click-map-info").then(res => {
console.log(res);
if(res.data.isHash){
return bsv.getMapDetailsFromHashs([res.data.id]).then(res => setMapInfo(() => res.at(0)));
}
bsv.getMapDetailsById(res.data.id).then(async map => {
const promise = new Promise<void>(async (resolve, reject) => {
try{
const ipcRes = await ipc.send<{id: string, isHash: boolean}>("one-click-map-info");
if(!ipcRes.success){ return reject(ipcRes.error); }
const mapDetails = ipcRes.data.isHash ? (await bsv.getMapDetailsFromHashs([ipcRes.data.id])).at(0) : await bsv.getMapDetailsById(ipcRes.data.id);
setMapInfo(() => map);
setMapInfo(() => mapDetails);
await mapsDownloader.oneClickInstallMap(mapDetails);
mapsDownloader.oneClickInstallMap(map).finally(() => ipc.sendLazy('window.close'));
});
resolve();
}
catch(e){
reject(e);
}
});
promise.finally(() => {});
return () => {
sub.unsubscribe();
}
@@ -60,12 +67,10 @@ export default function OneClickDownloadMap() {
return (
<div className="relative w-screen h-screen overflow-hidden">
<div className="w-full h-full absolute top-0 left-0">
<BsmImage className="absolute top-0 left-0 w-full h-full object-cover bg-center" placeholder={defaultImage} image={cover}/>
</div>
<div className="w-full h-full absolute top-0 left-0 backdrop-blur-md backdrop-brightness-50 flex flex-col justify-start items-center gap-10">
<BsmImage className="absolute top-0 left-0 w-full h-full !border-none" image={cover}/>
<div className="w-full h-full backdrop-brightness-50 flex flex-col justify-start items-center gap-10" style={{translate: "0 0 0"}}>
<TitleBar template="oneclick"/>
<BsmImage className="aspect-square w-1/2 object-cover rounded-md bg-center shadow-black shadow-lg" placeholder={defaultImage} image={cover}/>
<BsmImage className="aspect-square w-1/2 object-cover rounded-md shadow-black shadow-lg" placeholder={defaultImage} image={cover}/>
<h1 className="font-bold italic text-xl text-gray-200 tracking-wide">{mapInfo?.name ?? "Chargement de la map..."}</h1>
</div>
<BsmProgressBar/>