Skip to content

Commit 07d76a2

Browse files
committed
fix: Make sure ruffle player size is accurate on subsequent uses
refactor: Move back button to somewhere nicer on ruffle embed page
1 parent c90e7da commit 07d76a2

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

extensions/core-ruffle/src/components/LauncherEmbedPage.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { GameLaunchInfo } from 'flashpoint-launcher';
2-
import React from 'react';
2+
import React, { useState } from 'react';
33

44
export default function LauncherEmbedPage(props: GameLaunchInfo) {
5+
const [rufflePlayer, setRufflePlayer] = useState<any | undefined>();
56
const containerRef = React.useRef<HTMLDivElement | null>(null);
67
const navigate = window.ext.hooks.useNavigate();
78
const ruffleJsUrl = React.useMemo(() => `${window.ext.utils.getFileServerURL()}/ruffle/webhosted/latest/ruffle.js`, []);
@@ -32,9 +33,10 @@ export default function LauncherEmbedPage(props: GameLaunchInfo) {
3233
try {
3334
const ruffle = (window as any).RufflePlayer.newest();
3435
const player = ruffle.createPlayer();
36+
player.id = 'ruffle-player';
3537
containerRef.current.appendChild(player);
36-
3738
player.load(lc);
39+
setRufflePlayer(player);
3840
console.log('Ruffle player created and loaded with:', lc);
3941
} catch (err) {
4042
console.error('Failed to create Ruffle player:', err);
@@ -52,14 +54,16 @@ export default function LauncherEmbedPage(props: GameLaunchInfo) {
5254

5355
const ruffle = (window as any).RufflePlayer.newest();
5456
const player = ruffle.createPlayer();
57+
player.id = 'ruffle-player';
5558
containerRef.current.appendChild(player);
5659
player.load(lc);
60+
setRufflePlayer(player);
5761
console.log('Ruffle player created and loaded with:', lc);
5862
} catch (err) {
5963
console.error('Failed to create Ruffle player:', err);
6064
}
6165
}
62-
});
66+
}, []);
6367

6468
const onBack = () => {
6569
navigate(-1);
@@ -70,6 +74,6 @@ export default function LauncherEmbedPage(props: GameLaunchInfo) {
7074
<div className='ruffle-title'>{props.game.title}</div>
7175
<div className='ruffle-container' style={{ width, height }} ref={containerRef}></div>
7276
</div>
73-
<button className='simple-button' onClick={onBack}>Back</button>
77+
<button className='simple-button ruffle-back-button' onClick={onBack}>Back</button>
7478
</div>;
7579
}

extensions/core-ruffle/static/ruffle.css

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
align-items: center;
66
height: 100%;
77
width: 100%;
8+
position: relative;
89
}
910

1011
.ruffle-wrapper {
@@ -23,10 +24,19 @@
2324
.ruffle-container {
2425
display: flex;
2526
margin: auto;
26-
box-shadow: 0 0 20px rgba(245, 245, 245, 0.4);
27+
box-shadow: 0 0 20px rgba(154, 154, 154, 0.4);
28+
}
29+
30+
button.ruffle-back-button {
31+
position: absolute;
32+
left: 0;
33+
top: 0;
34+
font-size: 1.6em;
35+
height: auto;
36+
padding: 0.5em;
2737
}
2838

29-
ruffle-player {
39+
#ruffle-player {
3040
width: 100%;
3141
height: 100%;
3242
}

0 commit comments

Comments
 (0)