0.16.1 Registry Fix MakeMKV
Deploy Docs to GitHub Pages / Build Documentation (push) Has been cancelled
Deploy Docs to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled

This commit is contained in:
2026-04-29 08:14:06 +00:00
parent d679eface4
commit 6636eb11df
20 changed files with 420 additions and 64 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "ripster-frontend",
"version": "0.16.0",
"version": "0.16.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ripster-frontend",
"version": "0.16.0",
"version": "0.16.1",
"dependencies": {
"primeicons": "^7.0.0",
"primereact": "^10.9.2",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "ripster-frontend",
"version": "0.16.0",
"version": "0.16.1",
"private": true,
"type": "module",
"scripts": {
+14
View File
@@ -376,6 +376,20 @@ export const api = {
});
return normalizeHandBrakePresetPayload(result);
},
getMakeMKVBetaKey(options = {}) {
return requestCachedGet('/settings/makemkv/beta-key', {
ttlMs: 10 * 60 * 1000,
forceRefresh: options.forceRefresh
});
},
async applyMakeMKVBetaKey(payload = {}) {
const result = await request('/settings/makemkv/beta-key/apply', {
method: 'POST',
body: JSON.stringify(payload || {})
});
afterMutationInvalidate(['/settings/makemkv/beta-key', '/settings']);
return result;
},
getScripts(options = {}) {
return requestCachedGet('/settings/scripts', {
ttlMs: 2 * 60 * 1000,
@@ -655,6 +655,67 @@ function isReadonlySetting(setting) {
}
}
function MakeMKVBetaKeyHint({ onApply, disabled = false }) {
const [loading, setLoading] = useState(true);
const [betaKey, setBetaKey] = useState('');
const [error, setError] = useState('');
useEffect(() => {
let active = true;
setLoading(true);
setError('');
api.getMakeMKVBetaKey({ forceRefresh: true })
.then((response) => {
if (!active) {
return;
}
setBetaKey(String(response?.betaKey || '').trim());
})
.catch((loadError) => {
if (!active) {
return;
}
setBetaKey('');
setError(loadError?.message || 'Betakey konnte nicht geladen werden.');
})
.finally(() => {
if (active) {
setLoading(false);
}
});
return () => {
active = false;
};
}, []);
return (
<div className="makemkv-beta-key-box">
<div className="makemkv-beta-key-head">
<span className="makemkv-beta-key-title">Betakey</span>
<Button
type="button"
size="small"
text
label="übernehmen"
disabled={disabled || loading || !betaKey}
onClick={() => onApply?.(betaKey)}
/>
</div>
{loading ? (
<small className="setting-description">Aktueller Betakey wird geladen</small>
) : null}
{!loading && error ? (
<small className="error-text">{error}</small>
) : null}
{!loading && !error && betaKey ? (
<code className="makemkv-beta-key-value">{betaKey}</code>
) : null}
</div>
);
}
function SettingField({
setting,
value,
@@ -782,6 +843,12 @@ function SettingField({
</a>
</small>
) : null}
{normalizeSettingKey(setting?.key) === 'makemkv_registration_key' ? (
<MakeMKVBetaKeyHint
disabled={isDisabled}
onApply={(nextKey) => onChange?.(setting.key, nextKey)}
/>
) : null}
{error ? (
<small className="error-text">{error}</small>
) : (
+37
View File
@@ -2046,6 +2046,43 @@ body {
line-height: 1.35;
}
.makemkv-beta-key-box {
display: grid;
gap: 0.35rem;
margin-top: 0.15rem;
padding: 0.55rem 0.65rem;
border: 1px dashed rgba(111, 57, 34, 0.32);
border-radius: 0.45rem;
background: rgba(255, 250, 240, 0.72);
}
.makemkv-beta-key-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.5rem;
}
.makemkv-beta-key-title {
font-size: 0.8rem;
font-weight: 700;
color: var(--rip-brown-800);
text-transform: uppercase;
letter-spacing: 0.04em;
}
.makemkv-beta-key-value {
display: block;
padding: 0.45rem 0.5rem;
border-radius: 0.35rem;
background: rgba(58, 29, 18, 0.06);
color: var(--rip-brown-900);
font-size: 0.82rem;
line-height: 1.35;
overflow-wrap: anywhere;
word-break: break-word;
}
.notification-toggle-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));