mirror of
https://github.com/pockethost/pockethost.git
synced 2025-03-30 15:08:30 +00:00
refactor: version change
This commit is contained in:
parent
671a69f943
commit
66b71aa75e
@ -1,4 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
export let disabled: boolean = false
|
||||||
export let style: 'primary' | 'warning' | 'danger' | 'success' = 'primary'
|
export let style: 'primary' | 'warning' | 'danger' | 'success' = 'primary'
|
||||||
export let click: () => void = () => {}
|
export let click: () => void = () => {}
|
||||||
</script>
|
</script>
|
||||||
@ -6,6 +7,7 @@
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="btn btn-{style}"
|
class="btn btn-{style}"
|
||||||
|
{disabled}
|
||||||
style="--bs-btn-padding-y: .05rem; --bs-btn-padding-x: .5rem; --bs-btn-font-size: .75rem;"
|
style="--bs-btn-padding-y: .05rem; --bs-btn-padding-x: .5rem; --bs-btn-font-size: .75rem;"
|
||||||
on:click={click}><slot /></button
|
on:click={click}><slot /></button
|
||||||
>
|
>
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import TinyButton from '$components/helpers/TinyButton.svelte'
|
||||||
|
|
||||||
|
export let value: string = ''
|
||||||
|
export let disabled: boolean = false
|
||||||
|
export let save: (newValue: string) => Promise<string> = async () => 'saved'
|
||||||
|
|
||||||
|
let msg = ''
|
||||||
|
let oldValue = value
|
||||||
|
let editedValue = value
|
||||||
|
let editMode = false
|
||||||
|
|
||||||
|
const startEdit = () => {
|
||||||
|
oldValue = editedValue
|
||||||
|
editMode = true
|
||||||
|
}
|
||||||
|
const cancelEdit = () => {
|
||||||
|
editedValue = oldValue
|
||||||
|
editMode = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const saveEdit = () => {
|
||||||
|
save(editedValue)
|
||||||
|
.then((res) => {
|
||||||
|
editMode = false
|
||||||
|
msg = res
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
msg = e.message
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if !editMode || disabled}
|
||||||
|
{editedValue}
|
||||||
|
<TinyButton click={startEdit} {disabled}>edit</TinyButton>
|
||||||
|
{msg}
|
||||||
|
{/if}
|
||||||
|
{#if editMode && !disabled}
|
||||||
|
<input type="text" bind:value={editedValue} />
|
||||||
|
<TinyButton style="success" {disabled} click={saveEdit}>save</TinyButton>
|
||||||
|
<TinyButton style="danger" {disabled} click={cancelEdit}>cancel</TinyButton>
|
||||||
|
{/if}
|
@ -1,49 +1,23 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import TinyButton from '$components/helpers/TinyButton.svelte'
|
|
||||||
import { PUBLIC_APP_DOMAIN, PUBLIC_APP_PROTOCOL } from '$src/env'
|
|
||||||
import { client } from '$src/pocketbase'
|
import { client } from '$src/pocketbase'
|
||||||
import type { InstanceFields } from '@pockethost/common'
|
import type { InstanceFields } from '@pockethost/common'
|
||||||
|
import MiniEdit from './MiniEdit.svelte'
|
||||||
|
|
||||||
export let instance: InstanceFields
|
export let instance: InstanceFields
|
||||||
|
|
||||||
const { subdomain, status, version } = instance
|
const { version } = instance
|
||||||
const url = `${PUBLIC_APP_PROTOCOL}://${subdomain}.${PUBLIC_APP_DOMAIN}`
|
|
||||||
|
|
||||||
let msg = ''
|
|
||||||
let _oldVersion = version
|
|
||||||
let _version = version
|
let _version = version
|
||||||
let editMode = false
|
|
||||||
const startEdit = () => {
|
|
||||||
_oldVersion = _version
|
|
||||||
editMode = true
|
|
||||||
}
|
|
||||||
const cancelEdit = () => {
|
|
||||||
_version = _oldVersion
|
|
||||||
editMode = false
|
|
||||||
}
|
|
||||||
|
|
||||||
const saveEdit = () => {
|
const saveEdit = async (newValue: string) =>
|
||||||
client()
|
client()
|
||||||
.saveVersion({ instanceId: instance.id, version: _version })
|
.saveVersion({ instanceId: instance.id, version: newValue })
|
||||||
.then(() => {
|
.then(() => {
|
||||||
editMode = false
|
_version = newValue
|
||||||
msg = 'saved'
|
return 'saved'
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
|
||||||
msg = e.message
|
|
||||||
})
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
Version {#if !editMode}
|
Version <MiniEdit value={_version} save={saveEdit} />
|
||||||
{_version}
|
|
||||||
<TinyButton click={startEdit}>edit</TinyButton>
|
|
||||||
{msg}
|
|
||||||
{/if}
|
|
||||||
{#if editMode}
|
|
||||||
<input type="text" bind:value={_version} />
|
|
||||||
<TinyButton style="success" click={saveEdit}>save</TinyButton>
|
|
||||||
<TinyButton style="danger" click={cancelEdit}>cancel</TinyButton>
|
|
||||||
{/if}
|
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user