summaryrefslogtreecommitdiff
path: root/packages/auditor-backoffice-ui/src/components/menu/index.tsx
blob: 4c02797ab0720622103a352375465cd8e1156988 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*

This file is part of GNU Taler
(C) 2021-2024 Taler Systems S.A.

GNU Taler is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 3, or (at your option) any later version.

GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>

*/

/**
 * @author Nic Eigel
 *
 */
/*
import {ComponentChildren, Fragment, h, VNode} from "preact";
import {useEffect} from "preact/hooks";

function WithTitle({
                       title,
                       children,
                   }: {
    title: string;
    children: ComponentChildren;
}): VNode {
    useEffect(() => {
        document.title = `Taler Backoffice: ${title}`;
    }, [title]);
    return <Fragment>{children}</Fragment>;
}

export function Menu({
                         onLogout,
                         onShowSettings,
                         title,
                         instance,
                         path,
                         admin,
                         setInstanceName,
                         isPasswordOk
                     }: MenuProps): VNode {
    const [mobileOpen, setMobileOpen] = useState(false);

    const titleWithSubtitle = title
        ? title
        : !admin
            ? getInstanceTitle(path, instance)
            : getAdminTitle(path, instance);
    const adminInstance = instance === "default";
    const mimic = admin && !adminInstance;
    return (
        <WithTitle title={titleWithSubtitle}>
            <div
                class={mobileOpen ? "has-aside-mobile-expanded" : ""}
                onClick={() => setMobileOpen(false)}
            >
                <NavigationBar
                    onMobileMenu={() => setMobileOpen(!mobileOpen)}
                    title={titleWithSubtitle}
                />

                {onLogout && (
                    <Sidebar
                        onShowSettings={onShowSettings}
                        onLogout={onLogout}
                        admin={admin}
                        mimic={mimic}
                        instance={instance}
                        mobile={mobileOpen}
                        isPasswordOk={isPasswordOk}
                    />
                )}

                {mimic && (
                    <nav class="level" style={{
                        zIndex: 100,
                        position: "fixed",
                        width: "50%",
                        marginLeft: "20%"
                    }}>
                        <div class="level-item has-text-centered has-background-warning">
                            <p class="is-size-5">
                                You are viewing the instance <b>&quot;{instance}&quot;</b>.{" "}
                                <a
                                    href="#/instances"
                                    onClick={(e) => {
                                        setInstanceName("default");
                                    }}
                                >
                                    go back
                                </a>
                            </p>
                        </div>
                    </nav>
                )}
            </div>
        </WithTitle>
    );
}*/