feat: add tooltips

This commit is contained in:
EETagent 2022-12-21 17:01:32 +01:00
parent 5b347ccec4
commit 62810b0395
8 changed files with 60 additions and 6 deletions

View file

@ -2,7 +2,9 @@
import Email from '../icons/Email.svelte'; import Email from '../icons/Email.svelte';
import TextField from './TextField.svelte'; import TextField from './TextField.svelte';
let helperText: string = 'Zadejte platný email. Například radko.sablik@ssps.cz';
export let placeholder: string = ''; export let placeholder: string = '';
export let value: string = ''; export let value: string = '';
export let error: string = ''; export let error: string = '';
</script> </script>
@ -16,6 +18,7 @@
on:change on:change
type="email" type="email"
{placeholder} {placeholder}
{helperText}
icon icon
> >
<div slot="icon" class="flex items-center justify-center"> <div slot="icon" class="flex items-center justify-center">

View file

@ -2,7 +2,9 @@
import Person from '../icons/Person.svelte'; import Person from '../icons/Person.svelte';
import TextField from './TextField.svelte'; import TextField from './TextField.svelte';
export let helperText: string = '';
export let placeholder: string = ''; export let placeholder: string = '';
export let value: string = ''; export let value: string = '';
export let error: string = ''; export let error: string = '';
@ -13,7 +15,7 @@
} }
</script> </script>
<TextField bind:error bind:value on:keydown on:keyup on:change type="text" {placeholder} icon> <TextField bind:error bind:value on:keydown on:keyup on:change type="text" {placeholder} {helperText} icon>
<div slot="icon" class="flex items-center justify-center"> <div slot="icon" class="flex items-center justify-center">
<Person /> <Person />
</div> </div>

View file

@ -2,12 +2,13 @@
import { onMount } from 'svelte'; import { onMount } from 'svelte';
import TextField from './TextField.svelte'; import TextField from './TextField.svelte';
let helperText: string = 'Zadejte jméno a příjmení. Například Radko Sáblík';
export let placeholder: string = ''; export let placeholder: string = '';
export let valueName: string = ''; export let valueName: string = '';
export let valueSurname: string = ''; export let valueSurname: string = '';
let value: string = ""; let value: string = '';
$: { $: {
const parsed = value.trim().split(' '); const parsed = value.trim().split(' ');
@ -26,7 +27,17 @@
export let error: string = ''; export let error: string = '';
</script> </script>
<TextField bind:error bind:value on:click on:keydown on:keyup on:change type="text" {placeholder} /> <TextField
bind:error
bind:value
on:click
on:keydown
on:keyup
on:change
type="text"
{placeholder}
{helperText}
/>
<style> <style>
</style> </style>

View file

@ -1,7 +1,9 @@
<script lang="ts"> <script lang="ts">
import TextField from './TextField.svelte'; import TextField from './TextField.svelte';
export let helperText: string = '';
export let placeholder: string = ''; export let placeholder: string = '';
export let value: string = ''; export let value: string = '';
export let error: string = ''; export let error: string = '';
@ -11,4 +13,4 @@
} }
</script> </script>
<TextField bind:error bind:value on:keydown on:keyup on:change type="number" {placeholder} /> <TextField bind:error bind:value on:keydown on:keyup on:change type="number" {placeholder} {helperText} />

View file

@ -2,7 +2,9 @@
import Lock from '../icons/Lock.svelte'; import Lock from '../icons/Lock.svelte';
import TextField from './TextField.svelte'; import TextField from './TextField.svelte';
export let helperText: string = '';
export let placeholder: string = ''; export let placeholder: string = '';
export let value: string = ''; export let value: string = '';
export let error: string = ''; export let error: string = '';
</script> </script>
@ -14,6 +16,7 @@
on:keydown on:keydown
on:keyup on:keyup
{placeholder} {placeholder}
{helperText}
on:change on:change
type="password" type="password"
icon icon

View file

@ -2,7 +2,9 @@
import Telephone from '../icons/Telephone.svelte'; import Telephone from '../icons/Telephone.svelte';
import TextField from './TextField.svelte'; import TextField from './TextField.svelte';
let helperText: string = 'Zadejte platný telefon s předvolbou. Například +420 123 456 789';
export let placeholder: string = ''; export let placeholder: string = '';
export let value: string = ''; export let value: string = '';
export let error: string = ''; export let error: string = '';
@ -17,7 +19,17 @@
} }
</script> </script>
<TextField bind:error bind:value on:keydown on:keyup on:change type="tel" {placeholder} icon> <TextField
bind:error
bind:value
on:keydown
on:keyup
on:change
type="tel"
{placeholder}
{helperText}
icon
>
<div slot="icon" class="flex items-center justify-center"> <div slot="icon" class="flex items-center justify-center">
<Telephone /> <Telephone />
</div> </div>

View file

@ -3,14 +3,30 @@
const typeAction = (node: HTMLInputElement) => { const typeAction = (node: HTMLInputElement) => {
node.type = type; node.type = type;
}; };
export let helperText: string = '';
export let placeholder: string = ''; export let placeholder: string = '';
export let value: string = ''; export let value: string = '';
export let icon: boolean = false; export let icon: boolean = false;
export let error: string = ''; export let error: string = '';
import { tippy } from 'svelte-tippy';
import 'tippy.js/dist/tippy.css';
const isTooltip = helperText ? tippy : () => {};
const tooltipDelay = error != "" ? 0 : 1000;
</script> </script>
<div> <div
use:isTooltip={{
content: helperText,
placement: 'top',
showOnCreate: false,
delay: tooltipDelay
}}
>
<input <input
class:error class:error
bind:value bind:value

View file

@ -288,6 +288,7 @@
bind:value={$form.candidate.address} bind:value={$form.candidate.address}
type="text" type="text"
placeholder="Adresa trvalého bydliště" placeholder="Adresa trvalého bydliště"
helperText="Uveďte ulici, č.p., město, PSČ"
/> />
</span> </span>
<span class="mt-8 ml-2 w-full md:ml-0"> <span class="mt-8 ml-2 w-full md:ml-0">
@ -297,6 +298,7 @@
bind:value={$form.candidate.birthplace} bind:value={$form.candidate.birthplace}
type="text" type="text"
placeholder="Místo narození" placeholder="Místo narození"
helperText="Uveďte město"
icon icon
> >
<div slot="icon" class="text-sspsBlue flex items-center justify-center"> <div slot="icon" class="text-sspsBlue flex items-center justify-center">
@ -313,6 +315,8 @@
bind:value={$form.candidate.birthdate} bind:value={$form.candidate.birthdate}
type="text" type="text"
placeholder="Datum narození" placeholder="Datum narození"
helperText="TODO: (Uveďte ve formátu DD.MM.RRRR)"
/> />
<div class="ml-2"> <div class="ml-2">
<SelectField <SelectField
@ -417,6 +421,7 @@
on:change={handleChange} on:change={handleChange}
bind:value={$form.candidate.personalIdNumber} bind:value={$form.candidate.personalIdNumber}
placeholder="Rodné číslo" placeholder="Rodné číslo"
helperText="Rodné číslo musí být ve formátu 123456/7890"
/> />
<span class="ml-2"> <span class="ml-2">
<SelectField <SelectField