diff --git a/assets/css/app.css b/assets/css/app.css index ebecd5f..c322644 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -193,35 +193,22 @@ input.search-input:focus { position: -webkit-sticky; position: sticky; top: 0px; + display: flex; + align-items: center; + justify-content: space-between; z-index: 1; } -.ghd-file-header .reveal-diff { - display: none; - float: right; +.ghd-file-header .show-hide-diff { color: #999; } -.ghd-file-header .reveal-diff path { +.ghd-file-header .show-hide-diff path { fill: #999; } -.ghd-file-header.collapsed .reveal-diff { - display: block; -} - -.ghd-file-header .collapse-diff { - display: block; - float: right; - color: #999; -} - -.ghd-file-header .collapse-diff path { - fill: #999; -} - -.ghd-file-header.collapsed .collapse-diff { - display: none; +.ghd-file:has(.hidden) .show-hide-diff { + rotate: 180deg; } .ghd-chunk-header .ghd-line-number { diff --git a/assets/js/app.js b/assets/js/app.js index ff4282e..901c14b 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -87,19 +87,3 @@ lines.forEach(line => { } }) }) - -const fileHeaders = document.querySelectorAll('.ghd-file-header') -fileHeaders.forEach(header => { - header.addEventListener('click', e => { - const parent = header.parentNode - - parent.querySelectorAll('.ghd-diff').forEach(diff => { - diff.classList.toggle('hidden') - }) - header.classList.toggle('collapsed') && scrollIfNeeded(header) - }) -}) - -const scrollIfNeeded = elem => { - elem.getBoundingClientRect().top < 0 && elem.scrollIntoView(true) -} diff --git a/lib/diff_web/live/components/diff_component.ex b/lib/diff_web/live/components/diff_component.ex index 78757eb..d7f23f4 100644 --- a/lib/diff_web/live/components/diff_component.ex +++ b/lib/diff_web/live/components/diff_component.ex @@ -1,18 +1,22 @@ defmodule DiffWeb.DiffComponent do use DiffWeb, :live_component + alias Phoenix.LiveView.JS def render(assigns) do ~H"""