import Combine from "../Base/Combine";
import {FlowStep} from "./FlowStep";
import {UIEventSource} from "../../Logic/UIEventSource";
import Translations from "../i18n/Translations";
import Title from "../Base/Title";
import {CreateNotes} from "./CreateNotes";
import {FixedUiElement} from "../Base/FixedUiElement";

export default class Introdution extends Combine implements FlowStep<void> {
    readonly IsValid: UIEventSource<boolean>;
    readonly Value: UIEventSource<void>;

    constructor() {
        const example =  CreateNotes.createNoteContentsUi({
            properties:{
                "some_key":"some_value",
                "note":"a note in the original dataset"
            },
            geometry:{
                coordinates: [3.4,51.2]
            }
        }, {
            wikilink: "https://wiki.openstreetmap.org/wiki/Imports/<documentation of your import>",
            intro: "There might be an XYZ here",
            theme: "theme",
            source: "source of the data"
        }).map(el => el === "" ? new FixedUiElement("").SetClass("block") : el)
        
        super([
            new Title(Translations.t.importHelper.introduction.title),
            Translations.t.importHelper.introduction.description,
            Translations.t.importHelper.introduction.importFormat,
            new Combine(
                [new Combine(                    
                example
                ).SetClass("flex flex-col")
                ]            ).SetClass("literal-code")
        ]);
        this.SetClass("flex flex-col")
        this. IsValid= new UIEventSource<boolean>(true);
        this. Value = new UIEventSource<void>(undefined);

    }

}