+
+ 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 (
{
-
);
@@ -37,8 +50,14 @@ export const RowHeaders = () => {
-
- {character.name}
+
Animation
@@ -69,14 +88,23 @@ export const RowHeaders = () => {
{cameraMinimized.value ? (
-
) : (
-
- Camera
+
Movement
@@ -86,14 +114,24 @@ export const RowHeaders = () => {
{audioMinimized.value ? (
-
) : (
-
- Global Audio
+
@@ -118,16 +156,26 @@ export const RowHeaders = () => {
<>
{objectsMinimized.value ? (
-
) : (
-
- 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}
+