0.16.1 Registry Fix MakeMKV
This commit is contained in:
Generated
+2
-2
@@ -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,6 +1,6 @@
|
||||
{
|
||||
"name": "ripster-frontend",
|
||||
"version": "0.16.0",
|
||||
"version": "0.16.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -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>
|
||||
) : (
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user