diff --git a/app/pages/PageEnigma/PageStyling.tsx b/app/pages/PageEnigma/PageStyling.tsx index ec506c56ed..136af34944 100644 --- a/app/pages/PageEnigma/PageStyling.tsx +++ b/app/pages/PageEnigma/PageStyling.tsx @@ -78,12 +78,12 @@ export const PageStyling = ({ setPage }: Props) => { onClick={onTimelineClick}>
-
+
+ + + + Global Audio + + ); +} diff --git a/app/pages/PageEnigma/comps/Timeline/RowHeaders/CharacterHeader.tsx b/app/pages/PageEnigma/comps/Timeline/RowHeaders/CharacterHeader.tsx new file mode 100644 index 0000000000..1d02bb9f36 --- /dev/null +++ b/app/pages/PageEnigma/comps/Timeline/RowHeaders/CharacterHeader.tsx @@ -0,0 +1,22 @@ +interface Props { + name: string; +} + +export function CharacterHeader({ name }: Props) { + return ( + <> + + + + {name} + + ); +} diff --git a/app/pages/PageEnigma/comps/Timeline/RowHeaders/GlobalAudioHeader.tsx b/app/pages/PageEnigma/comps/Timeline/RowHeaders/GlobalAudioHeader.tsx new file mode 100644 index 0000000000..14e4b2e69b --- /dev/null +++ b/app/pages/PageEnigma/comps/Timeline/RowHeaders/GlobalAudioHeader.tsx @@ -0,0 +1,18 @@ +export function GlobalAudioHeader() { + return ( + <> + + + + Global Audio + + ) +} diff --git a/app/pages/PageEnigma/comps/Timeline/RowHeaders/ObjectsHeader.tsx b/app/pages/PageEnigma/comps/Timeline/RowHeaders/ObjectsHeader.tsx new file mode 100644 index 0000000000..fa41e951e8 --- /dev/null +++ b/app/pages/PageEnigma/comps/Timeline/RowHeaders/ObjectsHeader.tsx @@ -0,0 +1,18 @@ +export function ObjectsHeader() { + return ( + <> + + + + Objects + + ); +} diff --git a/app/pages/PageEnigma/comps/Timeline/RowHeaders.tsx b/app/pages/PageEnigma/comps/Timeline/RowHeaders/RowHeaders.tsx similarity index 64% rename from app/pages/PageEnigma/comps/Timeline/RowHeaders.tsx rename to app/pages/PageEnigma/comps/Timeline/RowHeaders/RowHeaders.tsx index e833f0a17e..03d4a5edaf 100644 --- a/app/pages/PageEnigma/comps/Timeline/RowHeaders.tsx +++ b/app/pages/PageEnigma/comps/Timeline/RowHeaders/RowHeaders.tsx @@ -12,10 +12,19 @@ import { import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faVolume, faVolumeSlash } from "@fortawesome/pro-solid-svg-icons"; import { useSignals } from "@preact/signals-react/runtime"; +import { GlobalAudioHeader } from "~/pages/PageEnigma/comps/Timeline/RowHeaders/GlobalAudioHeader"; +import { CameraHeader } from "~/pages/PageEnigma/comps/Timeline/RowHeaders/CameraHeader"; +import { ObjectsHeader } from "~/pages/PageEnigma/comps/Timeline/RowHeaders/ObjectsHeader"; +import { CharacterHeader } from "~/pages/PageEnigma/comps/Timeline/RowHeaders/CharacterHeader"; export const RowHeaders = () => { useSignals(); + const compressedHeaderClasses = + "flex h-[35px] items-center gap-2 pl-2 text-xs font-medium text-white"; + const uncompressedHeaderClasses = + "flex h-[35px] items-center gap-2 rounded-br-lg pl-2 text-xs font-medium text-white"; + return (
{
-
- {character.name} +
+
); @@ -37,8 +50,14 @@ export const RowHeaders = () => {
-
- {character.name} +
+
+ +
Animation @@ -69,14 +88,23 @@ export const RowHeaders = () => { {cameraMinimized.value ? (
-
- Camera +
+
) : (
-
- Camera +
+
+ +
Movement @@ -86,14 +114,24 @@ export const RowHeaders = () => { {audioMinimized.value ? (
-
- Global Audio +
+
) : (
-
- Global Audio +
+
+ +
@@ -118,16 +156,26 @@ export const RowHeaders = () => { <> {objectsMinimized.value ? (
-
- Objects +
+
) : (
-
- Objects +
+
+ +
{objectGroup.value.objects.map((obj) => (
{
- + + +
diff --git a/app/pages/PageEnigma/comps/Timeline/Timeline.tsx b/app/pages/PageEnigma/comps/Timeline/Timeline.tsx index 598a32e074..b1f0d86176 100644 --- a/app/pages/PageEnigma/comps/Timeline/Timeline.tsx +++ b/app/pages/PageEnigma/comps/Timeline/Timeline.tsx @@ -23,7 +23,7 @@ import { Characters } from "~/pages/PageEnigma/comps/Timeline/Characters"; import { ObjectGroups } from "~/pages/PageEnigma/comps/Timeline/ObjectGroups"; import useUpdateKeyframe from "~/pages/PageEnigma/contexts/TrackContext/utils/useUpdateKeyframe"; import { Clip, Keyframe } from "~/pages/PageEnigma/models"; -import { RowHeaders } from "~/pages/PageEnigma/comps/Timeline/RowHeaders"; +import { RowHeaders } from "~/pages/PageEnigma/comps/Timeline/RowHeaders/RowHeaders"; import { pageWidth } from "~/store"; import { Pages } from "~/pages/PageEnigma/constants/page"; import { DoNotShow } from "~/pages/PageEnigma/constants/misc"; @@ -98,7 +98,7 @@ export const Timeline = () => {
@@ -108,11 +108,11 @@ export const Timeline = () => { className="mb-20 mt-2 overflow-auto" onScroll={onScroll} style={{ - width: pageWidth.value - 228, + width: pageWidth.value - 204, height: timelineHeight.value - 54, }}>
+ style={{ width: filmLength.value * 60 * 4 * scale.value + 72 }}>
diff --git a/app/pages/PageEnigma/comps/Timeline/TimerGrid.tsx b/app/pages/PageEnigma/comps/Timeline/TimerGrid.tsx index c960fca49b..29f469a376 100644 --- a/app/pages/PageEnigma/comps/Timeline/TimerGrid.tsx +++ b/app/pages/PageEnigma/comps/Timeline/TimerGrid.tsx @@ -21,7 +21,7 @@ export const TimerGrid = ({ page }: Props) => { return (
{ event.preventDefault(); selectedItem.value = clip; }}> -
{clip.name}
+
+ {clip.name} +