feat: make band logo optional on break screen
This commit is contained in:
@@ -164,11 +164,21 @@ export function ChoreoPanel() {
|
|||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
<label className="flex items-center gap-2 text-xs text-gray-600">
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
className="h-4 w-4"
|
||||||
|
checked={slide.logoVisible ?? true}
|
||||||
|
onChange={(e) => updateSlide({ logoVisible: e.target.checked })}
|
||||||
|
/>
|
||||||
|
{t.choreo.showLogo}
|
||||||
|
</label>
|
||||||
<div className="grid grid-cols-2 gap-2">
|
<div className="grid grid-cols-2 gap-2">
|
||||||
<label className="text-xs text-gray-600">
|
<label className="text-xs text-gray-600">
|
||||||
{t.choreo.logoLabel}
|
{t.choreo.logoLabel}
|
||||||
<select
|
<select
|
||||||
className={inputCls}
|
className={inputCls}
|
||||||
|
disabled={!(slide.logoVisible ?? true)}
|
||||||
value={slide.logoName ?? ""}
|
value={slide.logoName ?? ""}
|
||||||
onChange={(e) =>
|
onChange={(e) =>
|
||||||
updateSlide({ logoName: e.target.value || null })
|
updateSlide({ logoName: e.target.value || null })
|
||||||
@@ -187,6 +197,7 @@ export function ChoreoPanel() {
|
|||||||
<input
|
<input
|
||||||
type="range"
|
type="range"
|
||||||
className="w-full"
|
className="w-full"
|
||||||
|
disabled={!(slide.logoVisible ?? true)}
|
||||||
min={80}
|
min={80}
|
||||||
max={480}
|
max={480}
|
||||||
step={10}
|
step={10}
|
||||||
@@ -201,6 +212,7 @@ export function ChoreoPanel() {
|
|||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
className="h-4 w-4"
|
className="h-4 w-4"
|
||||||
|
disabled={!(slide.logoVisible ?? true)}
|
||||||
checked={slide.logoInverted ?? false}
|
checked={slide.logoInverted ?? false}
|
||||||
onChange={(e) => updateSlide({ logoInverted: e.target.checked })}
|
onChange={(e) => updateSlide({ logoInverted: e.target.checked })}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ export function declareReplicants(nodecg: NodeCG.ServerAPI): Replicants {
|
|||||||
heading: branding.breakHeading ?? seed.breakHeading,
|
heading: branding.breakHeading ?? seed.breakHeading,
|
||||||
nextActName: "",
|
nextActName: "",
|
||||||
nextActFrom: "",
|
nextActFrom: "",
|
||||||
|
logoVisible: true,
|
||||||
logoInverted: false,
|
logoInverted: false,
|
||||||
logoName: null,
|
logoName: null,
|
||||||
logoHeightPx: 240,
|
logoHeightPx: 240,
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ export function Break() {
|
|||||||
<div className="text-6xl font-medium tracking-wide text-white/80">
|
<div className="text-6xl font-medium tracking-wide text-white/80">
|
||||||
{slide?.heading}
|
{slide?.heading}
|
||||||
</div>
|
</div>
|
||||||
{logoUrl && (
|
{(slide?.logoVisible ?? true) && logoUrl && (
|
||||||
<img
|
<img
|
||||||
src={logoUrl}
|
src={logoUrl}
|
||||||
alt=""
|
alt=""
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ export const en = {
|
|||||||
headingLabel: "Heading",
|
headingLabel: "Heading",
|
||||||
nextActNameLabel: "Next act",
|
nextActNameLabel: "Next act",
|
||||||
nextActFromLabel: "Where they're from",
|
nextActFromLabel: "Where they're from",
|
||||||
|
showLogo: "Show act logo",
|
||||||
logoLabel: "Act logo",
|
logoLabel: "Act logo",
|
||||||
logoAuto: "Automatic (first image)",
|
logoAuto: "Automatic (first image)",
|
||||||
logoSizeLabel: (px: number) => `Logo size (${px}px)`,
|
logoSizeLabel: (px: number) => `Logo size (${px}px)`,
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ export const sr: Strings = {
|
|||||||
headingLabel: "Naslov",
|
headingLabel: "Naslov",
|
||||||
nextActNameLabel: "Sledeći nastup",
|
nextActNameLabel: "Sledeći nastup",
|
||||||
nextActFromLabel: "Odakle su",
|
nextActFromLabel: "Odakle su",
|
||||||
|
showLogo: "Prikaži logo benda",
|
||||||
logoLabel: "Logo benda",
|
logoLabel: "Logo benda",
|
||||||
logoAuto: "Automatski (prva slika)",
|
logoAuto: "Automatski (prva slika)",
|
||||||
logoSizeLabel: (px: number) => `Veličina logoa (${px}px)`,
|
logoSizeLabel: (px: number) => `Veličina logoa (${px}px)`,
|
||||||
|
|||||||
Vendored
+2
@@ -23,6 +23,8 @@ export interface BreakSlide {
|
|||||||
heading: string;
|
heading: string;
|
||||||
nextActName: string;
|
nextActName: string;
|
||||||
nextActFrom: string;
|
nextActFrom: string;
|
||||||
|
/** show the band logo at all (hide when no act logo makes sense) */
|
||||||
|
logoVisible: boolean;
|
||||||
/** invert the band logo's colors (dark logo on the dark background) */
|
/** invert the band logo's colors (dark logo on the dark background) */
|
||||||
logoInverted: boolean;
|
logoInverted: boolean;
|
||||||
/** `base` of the assets:break-logo file to show; null = first uploaded */
|
/** `base` of the assets:break-logo file to show; null = first uploaded */
|
||||||
|
|||||||
Reference in New Issue
Block a user