From 67d47413ac8c0731f49979cc8a882dae237cffa7 Mon Sep 17 00:00:00 2001 From: Evan Lihou <3743825+evanlihou@users.noreply.github.com> Date: Tue, 27 Feb 2024 15:58:07 -0500 Subject: [PATCH] Add ability to save and recall lower thirds (#57) --- src/assets/delete.svg | 1 + src/assets/load.svg | 1 + src/assets/save.svg | 1 + src/assets/show.svg | 1 + src/components/Manage/Options.tsx | 18 ++- src/components/Manage/SavedLowerThirds.tsx | 172 +++++++++++++++++++++ src/routes.ts | 2 +- 7 files changed, 192 insertions(+), 4 deletions(-) create mode 100644 src/assets/delete.svg create mode 100644 src/assets/load.svg create mode 100644 src/assets/save.svg create mode 100644 src/assets/show.svg create mode 100644 src/components/Manage/SavedLowerThirds.tsx diff --git a/src/assets/delete.svg b/src/assets/delete.svg new file mode 100644 index 0000000..c812bb0 --- /dev/null +++ b/src/assets/delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/load.svg b/src/assets/load.svg new file mode 100644 index 0000000..fbefe9a --- /dev/null +++ b/src/assets/load.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/save.svg b/src/assets/save.svg new file mode 100644 index 0000000..a5d1616 --- /dev/null +++ b/src/assets/save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/show.svg b/src/assets/show.svg new file mode 100644 index 0000000..243648e --- /dev/null +++ b/src/assets/show.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/Manage/Options.tsx b/src/components/Manage/Options.tsx index 7da0352..fb3e65f 100644 --- a/src/components/Manage/Options.tsx +++ b/src/components/Manage/Options.tsx @@ -3,14 +3,15 @@ import { route } from 'preact-router'; import { getAuth } from 'firebase/auth'; import styled from 'styled-components'; import { - useContext, useEffect, useMemo, useRef, useState, + useCallback, useContext, useEffect, useMemo, useRef, useState, } from 'preact/hooks'; import { - ref, getDatabase, onValue, DatabaseReference, set, + ref, getDatabase, onValue, DatabaseReference, update, } from 'firebase/database'; import AppContext from '@/AppContext'; import { CGConfig } from '@/types'; import ErrorMessage from '../ErrorMessage'; +import SavedLowerThirds, { SavedLowerThirdRecord } from './SavedLowerThirds'; const OptionsPage = styled.div` font-size: 18px; @@ -170,7 +171,7 @@ const Options = () => { if (cgConfigDbRef.current === undefined) { throw new Error('DB Reference not defined'); } - await set(cgConfigDbRef.current, { + await update(cgConfigDbRef.current, { pageBg: pageBg ?? null, showBranding: showBranding ?? null, showTicker: showTicker ?? null, @@ -191,6 +192,11 @@ const Options = () => { } }; + const onLoadLowerThird = useCallback((rec: SavedLowerThirdRecord) => { + setLowerThirdTitle(rec.title); + setLowerThirdSubtitle(rec.subtitle); + }, []); + const onClickLogout = async () => { await getAuth().signOut(); route('/login'); @@ -309,6 +315,12 @@ const Options = () => { Subtitle setLowerThirdSubtitle((e.target as HTMLInputElement).value)} value={lowerThirdSubtitle ?? undefined} type="text" /> +