Preserve search bar text during search

This commit is contained in:
Alessio 2023-12-31 16:37:26 -06:00
parent 17c9ab77ea
commit 45f3fd199f
3 changed files with 11 additions and 3 deletions

View File

@ -266,13 +266,16 @@ func TestSearch(t *testing.T) {
assert := assert.New(t) assert := assert.New(t)
require := require.New(t) require := require.New(t)
resp := do_request(httptest.NewRequest("GET", fmt.Sprintf("/search/%s", url.PathEscape("to:spacex to:covfefeanon")), nil)) search_txt := "to:spacex to:covfefeanon"
resp := do_request(httptest.NewRequest("GET", fmt.Sprintf("/search/%s", url.PathEscape(search_txt)), nil))
require.Equal(resp.StatusCode, 200) require.Equal(resp.StatusCode, 200)
root, err := html.Parse(resp.Body) root, err := html.Parse(resp.Body)
require.NoError(err) require.NoError(err)
title_node := cascadia.Query(root, selector("title")) title_node := cascadia.Query(root, selector("title"))
assert.Equal(title_node.FirstChild.Data, "Search | Offline Twitter") assert.Equal(title_node.FirstChild.Data, "Search | Offline Twitter")
assert.Contains(cascadia.Query(root, selector("#search-bar")).Attr, html.Attribute{Key: "value", Val: search_txt})
tweet_nodes := cascadia.QueryAll(root, selector(".timeline > .tweet")) tweet_nodes := cascadia.QueryAll(root, selector(".timeline > .tweet"))
assert.Len(tweet_nodes, 1) assert.Len(tweet_nodes, 1)
@ -339,6 +342,7 @@ func TestSearchUsers(t *testing.T) {
require.NoError(err) require.NoError(err)
user_elements := cascadia.QueryAll(root, selector(".users-list-container .user")) user_elements := cascadia.QueryAll(root, selector(".users-list-container .user"))
assert.Len(user_elements, 2) assert.Len(user_elements, 2)
assert.Contains(cascadia.Query(root, selector("#search-bar")).Attr, html.Attribute{Key: "value", Val: "no"})
} }
// Search bar pasted link redirects // Search bar pasted link redirects

View File

@ -412,7 +412,7 @@ svg {
flex-grow: 1; flex-grow: 1;
display: flex; display: flex;
} }
.search-bar { #search-bar {
flex-grow: 1; flex-grow: 1;
} }

View File

@ -16,7 +16,11 @@
<img class="svg-icon" src="/static/icons/back.svg" /> <img class="svg-icon" src="/static/icons/back.svg" />
</a> </a>
<form hx-get="/search" hx-push-url="true" hx-target="body" hx-swap="inner-html show:window:top"> <form hx-get="/search" hx-push-url="true" hx-target="body" hx-swap="inner-html show:window:top">
<input id="search-bar" name="q" class="search-bar" placeholder="Search" type="text" /> <input id="search-bar"
name="q"
placeholder="Search" type="text"
{{with (search_text)}} value="{{.}}" {{end}}
/>
</form> </form>
</div> </div>
{{template "nav-sidebar"}} {{template "nav-sidebar"}}