mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-25 02:57:30 +00:00
Persist skin URL to query param
This commit is contained in:
parent
7bdad849ef
commit
a864a842b3
1 changed files with 20 additions and 2 deletions
|
|
@ -536,12 +536,27 @@ function XmlNode({ node }) {
|
|||
);
|
||||
}
|
||||
|
||||
function getSkinUrlFromQueryParams() {
|
||||
const searchParams = new URLSearchParams(window.location.search);
|
||||
return searchParams.get("skinUrl");
|
||||
}
|
||||
|
||||
function setSkinUrlToQueryParams(skinUrl) {
|
||||
const searchParams = new URLSearchParams(window.location.search);
|
||||
searchParams.set("skinUrl", skinUrl);
|
||||
const newRelativePathQuery = `${
|
||||
window.location.pathname
|
||||
}?${searchParams.toString()}`;
|
||||
window.history.pushState(null, "", newRelativePathQuery);
|
||||
}
|
||||
|
||||
function App() {
|
||||
const dispatch = useDispatch();
|
||||
const store = useStore();
|
||||
const root = useSelector(Selectors.getMakiTree);
|
||||
React.useEffect(() => {
|
||||
dispatch(Actions.gotSkinUrl(skinUrls[0], store));
|
||||
const defaultSkinUrl = getSkinUrlFromQueryParams() || skinUrls[0];
|
||||
dispatch(Actions.gotSkinUrl(defaultSkinUrl, store));
|
||||
}, [store]);
|
||||
if (root == null) {
|
||||
return <h1>Loading...</h1>;
|
||||
|
|
@ -559,7 +574,10 @@ function App() {
|
|||
<select
|
||||
style={{ position: "absolute", bottom: 0 }}
|
||||
onChange={e => {
|
||||
dispatch(Actions.gotSkinUrl(e.target.value, store));
|
||||
const newSkinUrl = e.target.value;
|
||||
// TODO: This should really go in a middleware somewhere.
|
||||
setSkinUrlToQueryParams(newSkinUrl);
|
||||
dispatch(Actions.gotSkinUrl(newSkinUrl, store));
|
||||
}}
|
||||
>
|
||||
{skinUrls.map(url => (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue