mirror of
https://github.com/Zagrios/bs-manager.git
synced 2026-07-03 14:08:25 +02:00
handle deepLink from score saber AND try fix white border
This commit is contained in:
@@ -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
@@ -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"}),
|
||||
}
|
||||
})();
|
||||
|
||||
|
||||
@@ -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/>
|
||||
|
||||
Reference in New Issue
Block a user