{HF_COLOR_GRADING_PALETTES.map((preset) => {
const selected =
palette?.length === preset.colors.length &&
palette.every((color, index) => color === preset.colors[index]);
return (
);
})}
{!palette ? (
) : (
<>
Custom palette
{palette.map((color, index) => (
{
const nextPalette = [...palette];
nextPalette[index] = event.target.value;
onCommitColorGrading({ ...grading, palette: nextPalette });
}}
className="h-6 w-6 cursor-pointer rounded-sm border border-panel-border-input bg-transparent p-0"
/>
{palette.length > 2 && (
)}
))}
{palette.length < 6 && (
)}
>
)}
);
};
return (
{activeEffects.length > 0 && (
{activeEffects.map((effect) => {
const selected = selectedEffect?.key === effect.key;
return (
);
})}
)}
{selectedEffect && (
{selectedEffect.label}
{selectedEffect.showMaster !== false && (
commitEffect(selectedEffect.key, next / 100)}
onReset={() =>
commitEffect(
selectedEffect.key,
HF_COLOR_GRADING_EFFECT_APPLY_DEFAULTS[selectedEffect.key][selectedEffect.key] ??
1,
)
}
/>
)}
{selectedEffect.settings?.map((control: EffectControl) => (
))}
{selectedEffect.palette && renderPalette(selectedEffect.palette)}
)}
{catalogOpen && (
{EFFECT_GROUPS.map((group) => (
))}
{EFFECT_GROUPS.filter((group) => group.label === catalogGroup).map((group) => (
{group.presets?.map((presetId) => {
const preset = HF_COLOR_GRADING_EFFECT_PRESETS.find(
(candidate) => candidate.id === presetId,
);
if (!preset) return null;
const selected = grading.preset === preset.id;
const preview = presetPreviews.images[preset.id];
return (
);
})}
{group.effects.map((effect) => {
const active = grading.effects[effect.key] > 0.0001;
const preview = previews.images[effect.key];
return (
);
})}
))}
)}
);
}