forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

appview/pages: keep search term when switching issue or pull tab

Signed-off-by: Thomas Karpiniec <tkarpiniec@icloud.com>

Changed files
+12 -2
appview
pages
templates
fragments
repo
issues
pulls
+8
appview/pages/templates/fragments/tabSelector.html
···
{{ $name := .Name }}
{{ $all := .Values }}
{{ $active := .Active }}
<div class="flex justify-between divide-x divide-gray-200 dark:divide-gray-700 rounded border border-gray-200 dark:border-gray-700 overflow-hidden">
{{ $activeTab := "bg-white dark:bg-gray-700 shadow-sm" }}
{{ $inactiveTab := "bg-gray-100 dark:bg-gray-800 shadow-inner" }}
{{ range $index, $value := $all }}
{{ $isActive := eq $value.Key $active }}
<a href="?{{ $name }}={{ $value.Key }}"
class="p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full block hover:no-underline text-center {{ if $isActive }} {{$activeTab }} {{ else }} {{ $inactiveTab }} {{ end }}">
{{ if $value.Icon }}
{{ i $value.Icon "size-4" }}
···
{{ $name := .Name }}
{{ $all := .Values }}
{{ $active := .Active }}
+
{{ $include := .Include }}
<div class="flex justify-between divide-x divide-gray-200 dark:divide-gray-700 rounded border border-gray-200 dark:border-gray-700 overflow-hidden">
{{ $activeTab := "bg-white dark:bg-gray-700 shadow-sm" }}
{{ $inactiveTab := "bg-gray-100 dark:bg-gray-800 shadow-inner" }}
{{ range $index, $value := $all }}
{{ $isActive := eq $value.Key $active }}
<a href="?{{ $name }}={{ $value.Key }}"
+
{{ if $include }}
+
hx-get="?{{ $name }}={{ $value.Key }}"
+
hx-include="{{ $include }}"
+
hx-push-url="true"
+
hx-target="body"
+
hx-on:htmx:config-request="if(!event.detail.parameters.q) delete event.detail.parameters.q"
+
{{ end }}
class="p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full block hover:no-underline text-center {{ if $isActive }} {{$activeTab }} {{ else }} {{ $inactiveTab }} {{ end }}">
{{ if $value.Icon }}
{{ i $value.Icon "size-4" }}
+2 -1
appview/pages/templates/repo/issues/issues.html
···
<input type="hidden" name="state" value="{{ if .FilteringByOpen }}open{{ else }}closed{{ end }}">
<div class="flex-1 flex relative">
<input
class="flex-1 py-1 pl-2 pr-10 mr-[-1px] rounded-r-none focus:border-0 focus:outline-none focus:ring focus:ring-blue-400 ring-inset peer"
type="text"
name="q"
···
</button>
</form>
<div class="sm:row-start-1">
-
{{ template "fragments/tabSelector" (dict "Name" "state" "Values" $values "Active" $active) }}
</div>
<a
href="/{{ .RepoInfo.FullName }}/issues/new"
···
<input type="hidden" name="state" value="{{ if .FilteringByOpen }}open{{ else }}closed{{ end }}">
<div class="flex-1 flex relative">
<input
+
id="search-q"
class="flex-1 py-1 pl-2 pr-10 mr-[-1px] rounded-r-none focus:border-0 focus:outline-none focus:ring focus:ring-blue-400 ring-inset peer"
type="text"
name="q"
···
</button>
</form>
<div class="sm:row-start-1">
+
{{ template "fragments/tabSelector" (dict "Name" "state" "Values" $values "Active" $active "Include" "#search-q") }}
</div>
<a
href="/{{ .RepoInfo.FullName }}/issues/new"
+2 -1
appview/pages/templates/repo/pulls/pulls.html
···
<input type="hidden" name="state" value="{{ .FilteringBy.String }}">
<div class="flex-1 flex relative">
<input
class="flex-1 py-1 pl-2 pr-10 mr-[-1px] rounded-r-none focus:border-0 focus:outline-none focus:ring focus:ring-blue-400 ring-inset peer"
type="text"
name="q"
···
</button>
</form>
<div class="sm:row-start-1">
-
{{ template "fragments/tabSelector" (dict "Name" "state" "Values" $values "Active" $active) }}
</div>
<a
href="/{{ .RepoInfo.FullName }}/pulls/new"
···
<input type="hidden" name="state" value="{{ .FilteringBy.String }}">
<div class="flex-1 flex relative">
<input
+
id="search-q"
class="flex-1 py-1 pl-2 pr-10 mr-[-1px] rounded-r-none focus:border-0 focus:outline-none focus:ring focus:ring-blue-400 ring-inset peer"
type="text"
name="q"
···
</button>
</form>
<div class="sm:row-start-1">
+
{{ template "fragments/tabSelector" (dict "Name" "state" "Values" $values "Active" $active "Include" "#search-q") }}
</div>
<a
href="/{{ .RepoInfo.FullName }}/pulls/new"