<template>

    <header>
    <h1>Story Baobab</h1>
    <div class="intro">
        Drag and drop images and video to sketch a print-friendly storyboard.
    </div>
    </header>

    <main>
        
    <div class="insert-scene">
        <input v-model="title" placeholder="Title">
        <button @click="add">Add Scene</button>
    </div>
    <div class="load-scene">
        <label > Open
        <input type="file" multiple @change="load">
        </label>
    </div>




        <SceneEntry v-for="scene in scenes" :title="scene.title" :series="scene.series"/>

    </main>
</template>

<script setup>

import SceneEntry from './components/SceneEntry.vue'
import {ref} from 'vue'

const scenes = ref([])
const title = ref('')
const add = () => {
    scenes.value.push({
        title: title.value,
        series: []
        })
    title.value = ""
    }

const load = (e) => {
    let files = e.target.files
    new Promise.all(files.forEach(async (file) =>{
       const reader = new FileReader()
       reader.readAsText(file)
       reader.onloadend = (e) => {
        if (e.target.readyState == FileReader.DONE) {
           try {
            let scene = JSON.parse(reader.result)
            scenes.value.push(scene)
           } catch (e) {
            console.log(e)
           }
        }
       }
    })
    )
}

</script>

<style>

header {
    margin: 32px;
}

header h1 {
    margin: 0;
}

main {
    margin: 32px;
}

.insert-scene {
    display: inline-flex;
    gap: 8px;
    padding: 16px;
    background-color: #F3F3F3;
}

.load-scene {
    display: inline-flex;
    gap: 8px;
    padding: 16px;

}

.load-scene input {
    position: absolute;
    top: -10000px;
}

.load-scene label {
    background-color: #fff;
    border: 1px solid currentColor;
    padding: 8px;
    border-radius: 50%;
    cursor: pointer;
}

.load-scene label:hover {
    background-color: #393939;
    border-color: #393939;
    color: #fff;
}

@media print {

    header, .insert-scene, .load-scene, .add-shot {
        display: none
    }



}


</style>
