43 lines
706 B
Svelte
43 lines
706 B
Svelte
|
<svelte:options immutable={true} />
|
||
|
<script>
|
||
|
import {onMount, afterUpdate} from 'svelte'
|
||
|
import kjua from 'kjua'
|
||
|
|
||
|
export let value = ''
|
||
|
export let color = '#333'
|
||
|
export let size = 300
|
||
|
|
||
|
let id = parseInt(Math.random() * 100000)
|
||
|
let container
|
||
|
var qr
|
||
|
|
||
|
onMount(() => {
|
||
|
qr = makeQR()
|
||
|
container.appendChild(qr)
|
||
|
})
|
||
|
|
||
|
afterUpdate(() => {
|
||
|
container.removeChild(qr)
|
||
|
qr = makeQR()
|
||
|
container.appendChild(qr)
|
||
|
})
|
||
|
|
||
|
function makeQR() {
|
||
|
return kjua({
|
||
|
rounded: 100,
|
||
|
text: value.toUpperCase(),
|
||
|
fill: color,
|
||
|
back: 'white',
|
||
|
quiet: 2,
|
||
|
size
|
||
|
})
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style>
|
||
|
div { text-align: center; }
|
||
|
</style>
|
||
|
|
||
|
<div bind:this={container}></div>
|
||
|
|