Update frontend JavaScript to use query parameters
- Changed getRefreshParams() to parse query params instead of path segments - Added buildUrl() helper to construct query param URLs - Updated keyboard shortcuts (j/k for delay, o for order toggle) to use query params
This commit is contained in:
parent
f856c92394
commit
a739e7307d
@ -62,20 +62,23 @@
|
|||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
function getRefreshParams() {
|
function getRefreshParams() {
|
||||||
var path = window.location.pathname.slice(1);
|
var params = new URLSearchParams(window.location.search);
|
||||||
var parts = path.split('/');
|
var order = params.get('order');
|
||||||
if (parts.length < 3) return null;
|
|
||||||
var order = parts[0];
|
|
||||||
if (order !== 'next' && order !== 'random') return null;
|
if (order !== 'next' && order !== 'random') return null;
|
||||||
var delay = parseInt(parts[1]);
|
var delay = parseInt(params.get('delay'));
|
||||||
if (isNaN(delay)) return null;
|
if (isNaN(delay)) return null;
|
||||||
|
var hash = window.location.pathname.slice(1);
|
||||||
return {
|
return {
|
||||||
delay: delay,
|
delay: delay,
|
||||||
order: order,
|
order: order,
|
||||||
hash: parts[2]
|
hash: hash
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function buildUrl(hash, order, delay) {
|
||||||
|
return '/' + hash + '?order=' + order + '&delay=' + delay;
|
||||||
|
}
|
||||||
|
|
||||||
document.addEventListener('keydown', function(e) {
|
document.addEventListener('keydown', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
if (e.code === 'Space') {
|
if (e.code === 'Space') {
|
||||||
@ -85,17 +88,17 @@
|
|||||||
document.getElementById('prev-btn').click();
|
document.getElementById('prev-btn').click();
|
||||||
} else if (e.code === 'ArrowRight' || e.key.toLowerCase() === 'l') {
|
} else if (e.code === 'ArrowRight' || e.key.toLowerCase() === 'l') {
|
||||||
document.getElementById('next-btn').click();
|
document.getElementById('next-btn').click();
|
||||||
} else if (e.code === 'Equal' || e.key.toLowerCase() === 'j') {
|
} else if (e.code === 'Equal' || e.key.toLowerCase() === 'j') {
|
||||||
var params = getRefreshParams();
|
var params = getRefreshParams();
|
||||||
if (params) window.location.href = '/' + params.order + '/' + (params.delay + 1) + '/' + params.hash;
|
if (params) window.location.href = buildUrl(params.hash, params.order, params.delay + 1);
|
||||||
} else if (e.code === 'Minus' || e.key.toLowerCase() === 'k') {
|
} else if (e.code === 'Minus' || e.key.toLowerCase() === 'k') {
|
||||||
var params = getRefreshParams();
|
var params = getRefreshParams();
|
||||||
if (params && params.delay > 1) window.location.href = '/' + params.order + '/' + (params.delay - 1) + '/' + params.hash;
|
if (params && params.delay > 1) window.location.href = buildUrl(params.hash, params.order, params.delay - 1);
|
||||||
} else if (e.key.toLowerCase() === 'o') {
|
} else if (e.key.toLowerCase() === 'o') {
|
||||||
var params = getRefreshParams();
|
var params = getRefreshParams();
|
||||||
if (params) {
|
if (params) {
|
||||||
var newOrder = params.order === 'next' ? 'random' : 'next';
|
var newOrder = params.order === 'next' ? 'random' : 'next';
|
||||||
window.location.href = '/' + newOrder + '/' + params.delay + '/' + params.hash;
|
window.location.href = buildUrl(params.hash, newOrder, params.delay);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user