"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
/**
 * penguins-eggs
 * components: users.tsx
 * author: Piero Proietti
 * email: piero.proietti@gmail.com
 * license: MIT
 */
const react_1 = tslib_1.__importStar(require("react"));
const ink_1 = require("ink");
const title_1 = tslib_1.__importDefault(require("./elements/title"));
const steps_1 = tslib_1.__importDefault(require("./elements/steps"));
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
const fs_1 = tslib_1.__importDefault(require("fs"));
// create your forceUpdate hook
function useForceUpdate() {
    const [value, setValue] = (0, react_1.useState)(0); // integer state
    return () => setValue((value) => value + 1); // update the state to force render
}
/**
 *
 * @param param0
 * @returns
 */
function Users({ name, fullname, password, rootPassword, hostname, autologin, sameUserPassword }) {
    let productName = 'unknown';
    let version = 'x.x.x';
    let configRoot = '/etc/penguins-eggs.d/krill/';
    if (fs_1.default.existsSync('/etc/calamares/settings.conf')) {
        configRoot = '/etc/calamares/';
    }
    const settings = js_yaml_1.default.load(fs_1.default.readFileSync(configRoot + 'settings.conf', 'utf-8'));
    const branding = settings.branding;
    const calamares = js_yaml_1.default.load(fs_1.default.readFileSync(configRoot + 'branding/' + branding + '/branding.desc', 'utf-8'));
    productName = calamares.strings.productName;
    version = calamares.strings.version;
    /**
    * totale width=74
    * step width=15
    * finestra with=59
    */
    let charAutologin = "[x] ";
    if (autologin) {
        charAutologin = "[ ]";
    }
    charAutologin = ""; // Hidden
    if (sameUserPassword) {
        rootPassword = password;
    }
    const forceUpdate = useForceUpdate();
    return (react_1.default.createElement(react_1.default.Fragment, null,
        react_1.default.createElement(title_1.default, { title: productName }),
        react_1.default.createElement(ink_1.Box, { width: 74, height: 11, borderStyle: "round", flexDirection: "column" },
            react_1.default.createElement(ink_1.Box, { flexDirection: "column" },
                react_1.default.createElement(ink_1.Box, { flexDirection: "row" },
                    react_1.default.createElement(steps_1.default, { step: 5 }),
                    react_1.default.createElement(ink_1.Box, { flexDirection: "column" },
                        react_1.default.createElement(ink_1.Box, null,
                            react_1.default.createElement(ink_1.Text, null, "username     : "),
                            react_1.default.createElement(ink_1.Text, { color: "cyan" }, name)),
                        react_1.default.createElement(ink_1.Box, null,
                            react_1.default.createElement(ink_1.Text, null, "full username: "),
                            react_1.default.createElement(ink_1.Text, { color: "cyan" }, fullname)),
                        react_1.default.createElement(ink_1.Box, null,
                            react_1.default.createElement(ink_1.Text, null, "user password: "),
                            react_1.default.createElement(ink_1.Text, { color: "cyan" }, password)),
                        react_1.default.createElement(ink_1.Box, null),
                        react_1.default.createElement(ink_1.Box, null,
                            react_1.default.createElement(ink_1.Text, null, "root password: "),
                            react_1.default.createElement(ink_1.Text, { color: "cyan" }, rootPassword)),
                        react_1.default.createElement(ink_1.Box, null,
                            react_1.default.createElement(ink_1.Text, null, "hostname     : "),
                            react_1.default.createElement(ink_1.Text, { color: "cyan" }, hostname)),
                        react_1.default.createElement(ink_1.Box, null,
                            react_1.default.createElement(ink_1.Text, null, " "),
                            react_1.default.createElement(ink_1.Text, { color: "cyan" }, charAutologin))))))));
}
exports.default = Users;
