const codeLib = require('../services/code');

const methods = {
    show() {
        if (!this.editor) this.editor = codeLib.popupEditor(this.$refs.editor, this.language);
        this.$refs.overlay.style.display = 'flex';
    },
    hide() {
        this.$refs.overlay.style.display = 'none';
    },
    updateEditorMode(language) {
        codeLib.setMode(this.editor, language);
    },
    updateLanguage(lang) {
        this.language = lang;
        this.updateEditorMode(lang);
    },
    open(code, language, callback) {
        this.show();
        this.updateEditorMode(language);
        this.language = language;
        codeLib.setContent(this.editor, code);
        this.code = code;
        this.callback = callback;
    },
    save() {
        if (!this.callback) return;
        this.callback(this.editor.getValue(), this.language);
        this.hide();
    }
};

const data = {
    editor: null,
    language: '',
    code: '',
    callback: null
};

module.exports = {
    methods,
    data
};