From ad56d5ee14433b6221ee830fe5b3fa7679c10f05 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Wed, 14 Aug 2024 16:34:30 +0300 Subject: [PATCH] adjust mobile ui --- app/javascript/application.js | 2 ++ app/javascript/elements/search_input.js | 25 +++++++++++++++++++ app/views/shared/_search_input.html.erb | 6 +++-- app/views/submissions_archived/index.html.erb | 4 ++- .../submissions_dashboard/index.html.erb | 2 +- app/views/template_folders/show.html.erb | 2 +- app/views/templates/_submission.html.erb | 9 +++++-- app/views/templates/_template.html.erb | 2 +- app/views/templates/show.html.erb | 6 +++-- app/views/templates_archived/index.html.erb | 4 ++- .../index.html.erb | 4 ++- app/views/templates_dashboard/index.html.erb | 2 +- 12 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 app/javascript/elements/search_input.js diff --git a/app/javascript/application.js b/app/javascript/application.js index 55bc69b1..9690f241 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -25,6 +25,7 @@ import PromptPassword from './elements/prompt_password' import EmailsTextarea from './elements/emails_textarea' import ToggleOnSubmit from './elements/toggle_on_submit' import PasswordInput from './elements/password_input' +import SearchInput from './elements/search_input' import * as TurboInstantClick from './lib/turbo_instant_click' @@ -87,6 +88,7 @@ safeRegisterElement('emails-textarea', EmailsTextarea) safeRegisterElement('toggle-cookies', ToggleCookies) safeRegisterElement('toggle-on-submit', ToggleOnSubmit) safeRegisterElement('password-input', PasswordInput) +safeRegisterElement('search-input', SearchInput) safeRegisterElement('template-builder', class extends HTMLElement { connectedCallback () { diff --git a/app/javascript/elements/search_input.js b/app/javascript/elements/search_input.js new file mode 100644 index 00000000..9b536ab3 --- /dev/null +++ b/app/javascript/elements/search_input.js @@ -0,0 +1,25 @@ +export default class extends HTMLElement { + connectedCallback () { + this.input.addEventListener('focus', () => { + if (this.title) { + this.title.classList.add('hidden', 'md:block') + this.input.classList.add('w-60') + } + }) + + this.input.addEventListener('blur', (e) => { + if (this.title && !e.target.value) { + this.title.classList.remove('hidden') + this.input.classList.remove('w-60') + } + }) + } + + get input () { + return this.querySelector('input') + } + + get title () { + return document.querySelector(this.dataset.title) + } +} diff --git a/app/views/shared/_search_input.html.erb b/app/views/shared/_search_input.html.erb index c24eb1e5..5f407499 100644 --- a/app/views/shared/_search_input.html.erb +++ b/app/views/shared/_search_input.html.erb @@ -1,4 +1,4 @@ -