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