Merge pull request #182 from Webifi/main
Fix scroll jumping in settings dialog
This commit is contained in:
		
						commit
						189d35a5d0
					
				| 
						 | 
					@ -8,14 +8,25 @@
 | 
				
			||||||
  import Fa from 'svelte-fa/src/fa.svelte'
 | 
					  import Fa from 'svelte-fa/src/fa.svelte'
 | 
				
			||||||
  import { openModal } from 'svelte-modals'
 | 
					  import { openModal } from 'svelte-modals'
 | 
				
			||||||
  import PromptConfirm from './PromptConfirm.svelte'
 | 
					  import PromptConfirm from './PromptConfirm.svelte'
 | 
				
			||||||
 | 
					  import { afterUpdate, onMount } from 'svelte'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  export let setting:ChatSetting
 | 
					  export let setting:ChatSetting
 | 
				
			||||||
  export let chatSettings:ChatSettings
 | 
					  export let chatSettings:ChatSettings
 | 
				
			||||||
  export let chat:Chat
 | 
					  export let chat:Chat
 | 
				
			||||||
  export let chatDefaults:Record<string, any>
 | 
					  export let chatDefaults:Record<string, any>
 | 
				
			||||||
  export let originalProfile:String
 | 
					  export let originalProfile:String
 | 
				
			||||||
 | 
					  export let rkey:number = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const chatId = chat.id
 | 
					  const chatId = chat.id
 | 
				
			||||||
 | 
					  let show = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  onMount(() => {
 | 
				
			||||||
 | 
					    show = (typeof setting.hide !== 'function') || !setting.hide(chatId)
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  afterUpdate(() => {
 | 
				
			||||||
 | 
					    show = (typeof setting.hide !== 'function') || !setting.hide(chatId)
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const fieldControls:ControlAction[] = (setting.fieldControls || [] as FieldControl[]).map(fc => {
 | 
					  const fieldControls:ControlAction[] = (setting.fieldControls || [] as FieldControl[]).map(fc => {
 | 
				
			||||||
    return fc.getAction(chatId, setting, chatSettings[setting.key])
 | 
					    return fc.getAction(chatId, setting, chatSettings[setting.key])
 | 
				
			||||||
| 
						 | 
					@ -124,7 +135,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{#if (typeof setting.hide !== 'function') || !setting.hide(chatId)}
 | 
					{#if show}
 | 
				
			||||||
  {#if setting.header}
 | 
					  {#if setting.header}
 | 
				
			||||||
  <p class="notification {setting.headerClass}">
 | 
					  <p class="notification {setting.headerClass}">
 | 
				
			||||||
    {@html setting.header}
 | 
					    {@html setting.header}
 | 
				
			||||||
| 
						 | 
					@ -180,11 +191,13 @@
 | 
				
			||||||
        {:else if setting.type === 'select' || setting.type === 'select-number'}
 | 
					        {:else if setting.type === 'select' || setting.type === 'select-number'}
 | 
				
			||||||
          <!-- <div class="select"> -->
 | 
					          <!-- <div class="select"> -->
 | 
				
			||||||
            <div class="select" class:control={fieldControls.length}>
 | 
					            <div class="select" class:control={fieldControls.length}>
 | 
				
			||||||
 | 
					            {#key rkey}
 | 
				
			||||||
            <select id="settings-{setting.key}" title="{setting.title}" on:change={e => queueSettingValueChange(e, setting) } >
 | 
					            <select id="settings-{setting.key}" title="{setting.title}" on:change={e => queueSettingValueChange(e, setting) } >
 | 
				
			||||||
              {#each setting.options as option}
 | 
					              {#each setting.options as option}
 | 
				
			||||||
                <option class:is-default={option.value === chatDefaults[setting.key]} value={option.value} selected={option.value === chatSettings[setting.key]}>{option.text}</option>
 | 
					                <option class:is-default={option.value === chatDefaults[setting.key]} value={option.value} selected={option.value === chatSettings[setting.key]}>{option.text}</option>
 | 
				
			||||||
              {/each}
 | 
					              {/each}
 | 
				
			||||||
            </select>
 | 
					            </select>
 | 
				
			||||||
 | 
					            {/key}
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            {#each fieldControls as cont}
 | 
					            {#each fieldControls as cont}
 | 
				
			||||||
            <div class="control">
 | 
					            <div class="control">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -282,11 +282,11 @@
 | 
				
			||||||
      <button class="delete" aria-label="close" on:click={closeSettings}></button>
 | 
					      <button class="delete" aria-label="close" on:click={closeSettings}></button>
 | 
				
			||||||
    </header>
 | 
					    </header>
 | 
				
			||||||
    <section class="modal-card-body">
 | 
					    <section class="modal-card-body">
 | 
				
			||||||
      {#key showSettingsModal}
 | 
					 | 
				
			||||||
      {#each settingsList as setting}
 | 
					      {#each settingsList as setting}
 | 
				
			||||||
        <ChatSettingField on:refresh={refreshSettings} on:change={setDirty} chat={chat} chatDefaults={chatDefaults} chatSettings={chatSettings} setting={setting} originalProfile={originalProfile} />
 | 
					      <!-- {#key showSettingsModal} -->
 | 
				
			||||||
 | 
					        <ChatSettingField rkey={showSettingsModal} on:refresh={refreshSettings} on:change={setDirty} chat={chat} chatDefaults={chatDefaults} chatSettings={chatSettings} setting={setting} originalProfile={originalProfile} />
 | 
				
			||||||
 | 
					      <!-- {/key} -->
 | 
				
			||||||
      {/each}
 | 
					      {/each}
 | 
				
			||||||
      {/key}
 | 
					 | 
				
			||||||
    </section>
 | 
					    </section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <footer class="modal-card-foot">
 | 
					    <footer class="modal-card-foot">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,7 @@
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  afterUpdate(() => {
 | 
					  afterUpdate(() => {
 | 
				
			||||||
    if (message.content.slice(-5).match(/```/)) refreshCounter++
 | 
					    if (message.content.slice(-5).includes('```')) refreshCounter++
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const edit = () => {
 | 
					  const edit = () => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue