fix copilot findings in kawarp.js and themeStore.js cause they were bugging me
This commit is contained in:
parent
9e5332d953
commit
b88e55efb3
2 changed files with 42 additions and 34 deletions
|
|
@ -2,7 +2,37 @@ import { syncManager } from './accounts/pocketbase.js';
|
|||
import { authManager } from './accounts/auth.js';
|
||||
import { navigate } from './router.js';
|
||||
|
||||
const THEMES_PER_PAGE = 50;
|
||||
|
||||
const GENERIC_FONT_FAMILIES = [
|
||||
'serif',
|
||||
'sans-serif',
|
||||
'monospace',
|
||||
'cursive',
|
||||
'fantasy',
|
||||
'system-ui',
|
||||
'inter',
|
||||
'ibm plex mono',
|
||||
'roboto',
|
||||
'open sans',
|
||||
'lato',
|
||||
'montserrat',
|
||||
'poppins',
|
||||
'apple music',
|
||||
'sf pro display',
|
||||
'courier new',
|
||||
'times new roman',
|
||||
'arial',
|
||||
'helvetica',
|
||||
'verdana',
|
||||
'tahoma',
|
||||
'trebuchet ms',
|
||||
'impact',
|
||||
'gill sans',
|
||||
];
|
||||
|
||||
export class ThemeStore {
|
||||
static EXPECTED_USER_ID_LENGTH = 15;
|
||||
constructor() {
|
||||
this.pb = syncManager.pb;
|
||||
this.modal = document.getElementById('theme-store-modal');
|
||||
|
|
@ -119,7 +149,7 @@ export class ThemeStore {
|
|||
}
|
||||
|
||||
try {
|
||||
const result = await this.pb.collection('themes').getList(1, 50, {
|
||||
const result = await this.pb.collection('themes').getList(1, THEMES_PER_PAGE, {
|
||||
sort: '-created',
|
||||
filter: query ? `name ~ "${query}" || description ~ "${query}"` : '',
|
||||
expand: 'author',
|
||||
|
|
@ -375,33 +405,7 @@ export class ThemeStore {
|
|||
const fontFamilyValue = fontMatch[1].trim();
|
||||
const mainFont = fontFamilyValue.split(',')[0].trim().replace(/['"]/g, '');
|
||||
|
||||
const genericFamilies = [
|
||||
'serif',
|
||||
'sans-serif',
|
||||
'monospace',
|
||||
'cursive',
|
||||
'fantasy',
|
||||
'system-ui',
|
||||
'inter',
|
||||
'ibm plex mono',
|
||||
'roboto',
|
||||
'open sans',
|
||||
'lato',
|
||||
'montserrat',
|
||||
'poppins',
|
||||
'apple music',
|
||||
'sf pro display',
|
||||
'courier new',
|
||||
'times new roman',
|
||||
'arial',
|
||||
'helvetica',
|
||||
'verdana',
|
||||
'tahoma',
|
||||
'trebuchet ms',
|
||||
'impact',
|
||||
'gill sans',
|
||||
];
|
||||
const isPresetOrGeneric = genericFamilies.some((generic) => mainFont.toLowerCase() === generic);
|
||||
const isPresetOrGeneric = GENERIC_FONT_FAMILIES.some((generic) => mainFont.toLowerCase() === generic);
|
||||
|
||||
if (!isPresetOrGeneric) {
|
||||
const FONT_LINK_ID = 'monochrome-dynamic-font';
|
||||
|
|
@ -460,6 +464,7 @@ export class ThemeStore {
|
|||
document.querySelectorAll('.theme-option').forEach((el) => el.classList.remove('active'));
|
||||
document.querySelector('[data-theme="custom"]')?.classList.add('active');
|
||||
|
||||
// Force reflow to ensure theme changes are applied immediately
|
||||
document.documentElement.style.display = 'none';
|
||||
document.documentElement.offsetHeight;
|
||||
document.documentElement.style.display = '';
|
||||
|
|
@ -526,9 +531,9 @@ export class ThemeStore {
|
|||
userId = dbUser.id;
|
||||
userName = dbUser.username || dbUser.display_name || fbUser.email;
|
||||
|
||||
if (userId.length !== 15) {
|
||||
if (userId.length !== ThemeStore.EXPECTED_USER_ID_LENGTH) {
|
||||
throw new Error(
|
||||
`Your user ID is corrupted (${userId.length} chars, expected 15). ` +
|
||||
`Your user ID is corrupted (${userId.length} chars, expected ${ThemeStore.EXPECTED_USER_ID_LENGTH}). ` +
|
||||
`Please go to Settings > System > Clear Cloud Data, then log out and back in.`
|
||||
);
|
||||
}
|
||||
|
|
@ -581,8 +586,9 @@ export class ThemeStore {
|
|||
alert(msg);
|
||||
} else {
|
||||
const message = err.message || err.data?.message || 'Unknown error';
|
||||
const debugInfo = `\n\nDebug: User ID: ${userId} (${userId?.length} chars) | Status: ${err.status}`;
|
||||
alert(`Failed to upload theme: ${message}${debugInfo}`);
|
||||
const debugInfo = `User ID: ${userId} (${userId?.length} chars) | Status: ${err.status}`;
|
||||
console.error('Upload failed (debug info):', debugInfo);
|
||||
alert(`Failed to upload theme: ${message}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,10 +13,12 @@ const KAWARP_DEFAULTS = {
|
|||
const BEAT_THRESHOLD = 0.75;
|
||||
const SPEED_MULTIPLIER = 4;
|
||||
const SCALE_BOOST_PCT = 2;
|
||||
const BOOSTED_SCALE = KAWARP_DEFAULTS.scale + SCALE_BOOST_PCT / 100;
|
||||
const SCALE_LERP_UP = 0.5;
|
||||
const SCALE_LERP_DOWN = 0.12;
|
||||
const SCALE_THRESHOLD = 0.001;
|
||||
const ANALYSIS_INTERVAL = 100;
|
||||
const CACHE_BUST_PARAM = 'not-from-cache-please';
|
||||
|
||||
export class KawarpPreset {
|
||||
constructor() {
|
||||
|
|
@ -115,7 +117,7 @@ export class KawarpPreset {
|
|||
// cached non-CORS response from the <img> tag (same pattern as ui.js)
|
||||
const sep = url.includes('?') ? '&' : '?';
|
||||
this.kawarp
|
||||
.loadImage(`${url}${sep}not-from-cache-please`)
|
||||
.loadImage(`${url}${sep}${CACHE_BUST_PARAM}`)
|
||||
.catch((err) => console.warn('[Kawarp] Failed to load cover:', err));
|
||||
}
|
||||
|
||||
|
|
@ -149,7 +151,7 @@ export class KawarpPreset {
|
|||
? KAWARP_DEFAULTS.animationSpeed * SPEED_MULTIPLIER
|
||||
: KAWARP_DEFAULTS.animationSpeed;
|
||||
|
||||
this._targetScale = isBeat ? KAWARP_DEFAULTS.scale + SCALE_BOOST_PCT / 100 : KAWARP_DEFAULTS.scale;
|
||||
this._targetScale = isBeat ? BOOSTED_SCALE : KAWARP_DEFAULTS.scale;
|
||||
|
||||
this._lastAnalysisTime = now;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue