diff --git a/src/components/Icon.svelte b/src/components/Icon.svelte index b2213e898..8952c1d40 100644 --- a/src/components/Icon.svelte +++ b/src/components/Icon.svelte @@ -15,6 +15,7 @@ | "checkmark" | "chevron-down" | "chevron-right" + | "clock" | "collapse-panel" | "comment" | "comment-checkmark" @@ -185,6 +186,29 @@ + {:else if name === "clock"} + + + + + + + + + + + + + + + + + + + + + + {:else if name === "collapse-panel"} diff --git a/src/components/Revision.svelte b/src/components/Revision.svelte index ced650c34..be8b19c4f 100644 --- a/src/components/Revision.svelte +++ b/src/components/Revision.svelte @@ -318,22 +318,20 @@ -
- -
(hideChanges = !hideChanges)}> - Changes -
-
- {#await loadHighlightedDiff(rid, revision.base, revision.head)} - Loading… - {:then diff} - - {/await} -
+ +
(hideChanges = !hideChanges)}> + Changes +
+
+ {#await loadHighlightedDiff(rid, revision.base, revision.head)} + Loading… + {:then diff} + + {/await}
diff --git a/src/views/repo/Patch.svelte b/src/views/repo/Patch.svelte index 0654c8c9f..bf83a16fd 100644 --- a/src/views/repo/Patch.svelte +++ b/src/views/repo/Patch.svelte @@ -26,24 +26,23 @@ import AssigneeInput from "@app/components/AssigneeInput.svelte"; import Border from "@app/components/Border.svelte"; import CopyableId from "@app/components/CopyableId.svelte"; + import DropdownList from "@app/components/DropdownList.svelte"; + import DropdownListItem from "@app/components/DropdownListItem.svelte"; import Icon from "@app/components/Icon.svelte"; import InlineTitle from "@app/components/InlineTitle.svelte"; import LabelInput from "@app/components/LabelInput.svelte"; import Layout from "./Layout.svelte"; + import NakedButton from "@app/components/NakedButton.svelte"; + import NodeId from "@app/components/NodeId.svelte"; import PatchStateBadge from "@app/components/PatchStateBadge.svelte"; import PatchStateButton from "@app/components/PatchStateButton.svelte"; import PatchTeaser from "@app/components/PatchTeaser.svelte"; + import PatchTimeline from "@app/components/PatchTimeline.svelte"; + import Popover, { closeFocused } from "@app/components/Popover.svelte"; import RevisionComponent from "@app/components/Revision.svelte"; import Sidebar from "@app/components/Sidebar.svelte"; import Tab from "@app/components/Tab.svelte"; import TextInput from "@app/components/TextInput.svelte"; - import NakedButton from "@app/components/NakedButton.svelte"; - import Popover, { closeFocused } from "@app/components/Popover.svelte"; - import DropdownList from "@app/components/DropdownList.svelte"; - import DropdownListItem from "@app/components/DropdownListItem.svelte"; - import NodeId from "@app/components/NodeId.svelte"; - import Avatar from "@app/components/Avatar.svelte"; - import PatchTimeline from "@app/components/PatchTimeline.svelte"; interface Props { repo: RepoInfo; @@ -75,7 +74,7 @@ let updatedTitle = $state(""); let labelSaveInProgress: boolean = $state(false); let assigneesSaveInProgress: boolean = $state(false); - let tab: "patch" | "revisions" = $state("patch"); + let tab: "patch" | "revisions" | "timeline" = $state("patch"); let hideTimeline = $state(false); let selectedRevision: Revision = $state(revisions.slice(-1)[0]); const revisionAuthors = $derived( @@ -288,7 +287,7 @@ padding-bottom: 1rem; } .content { - padding: 1rem 1rem 0 0; + padding: 1rem 1rem 1rem 0; } .metadata-divider { @@ -455,7 +454,8 @@ class="global-flex" style:z-index="10" style:gap="1rem" - style:padding="0 1rem"> + style:padding="0 1rem" + style:width="100%"> Revisions @@ -478,11 +478,6 @@ onclick={() => { tab = "revisions"; }}> - {formatOid(selectedRevision.id)} {#if selectedRevision.id === revisions.slice(-1)[0].id} {/if} + +
+ { + tab = "timeline"; + }}> + + Timeline + +
- {#if tab === "patch"} - + + {#if tab === "patch"} - - {:else} - + {:else if tab === "timeline"} +
+ +
(hideTimeline = !hideTimeline)}> + Timeline +
+
+ +
+
+ {:else} -
- {/if} - - -
- -
(hideTimeline = !hideTimeline)}> - Timeline -
-
- -
+ {/if} +