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>
|
||||
<script>
|
||||
function getRefreshParams() {
|
||||
var path = window.location.pathname.slice(1);
|
||||
var parts = path.split('/');
|
||||
if (parts.length < 3) return null;
|
||||
var order = parts[0];
|
||||
var params = new URLSearchParams(window.location.search);
|
||||
var order = params.get('order');
|
||||
if (order !== 'next' && order !== 'random') return null;
|
||||
var delay = parseInt(parts[1]);
|
||||
var delay = parseInt(params.get('delay'));
|
||||
if (isNaN(delay)) return null;
|
||||
var hash = window.location.pathname.slice(1);
|
||||
return {
|
||||
delay: delay,
|
||||
order: order,
|
||||
hash: parts[2]
|
||||
hash: hash
|
||||
};
|
||||
}
|
||||
|
||||
function buildUrl(hash, order, delay) {
|
||||
return '/' + hash + '?order=' + order + '&delay=' + delay;
|
||||
}
|
||||
|
||||
document.addEventListener('keydown', function(e) {
|
||||
e.preventDefault();
|
||||
if (e.code === 'Space') {
|
||||
@ -87,15 +90,15 @@
|
||||
document.getElementById('next-btn').click();
|
||||
} else if (e.code === 'Equal' || e.key.toLowerCase() === 'j') {
|
||||
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') {
|
||||
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') {
|
||||
var params = getRefreshParams();
|
||||
if (params) {
|
||||
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