1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-04-03 04:41:06 +02:00
openstamanager/resources/ts/Components/Dialogs/UserInfoActionDialog.tsx
Maicol Battistini b448da234e
fix: Visualizzazione menu utente
Il componente UserInfoActionDialog è stato creato per mostrare le informazioni dell'utente con opzioni per il profilo utente e il logout. Allo stesso tempo, il codice relativo alle azioni dell'utente è stato rimosso da UserInfoAction.tsx e sostituito con il nuovo componente. Ho inoltre apportato una modifica a app.blade.php per correggere il caricamento dell'utente.
2023-12-08 17:31:27 +01:00

48 lines
1.4 KiB
TypeScript

import '@material/web/button/text-button.js';
import {router} from '@maicol07/inertia-mithril';
import {mdiAccountOutline, mdiLogoutVariant} from '@mdi/js';
import Dialog, {DialogAttributes} from '@osm/Components/Dialogs/Dialog';
import MdIcon from '@osm/Components/MdIcon';
import {VnodeCollection} from '@osm/typings/jsx';
import collect from 'collect.js';
import Mithril from 'mithril';
import {Request} from 'mithril-utilities';
export default class UserInfoActionDialog extends Dialog {
icon(): Mithril.Children {
return app.user?.picture ? (
<img className="user-image mdc-elevation--z2" src={app.user.picture} alt={app.user.username}/>
) : <MdIcon icon={mdiAccountOutline}/>;
}
headline(): Mithril.Children {
return <span>{app.user?.username}</span>;
}
contents(vnode: Mithril.Vnode<DialogAttributes, this>): Mithril.Children {
return (
<span>{app.user?.email}</span>
);
}
actions(vnode: Mithril.Vnode<DialogAttributes, this>): VnodeCollection {
return collect({
profile: (
<md-text-button>{__('Il tuo profilo')}</md-text-button>
),
logout: (
<md-text-button id="logout-button" onclick={this.logout.bind(this)}>
{__('Esci')}
<MdIcon icon={mdiLogoutVariant} slot="icon"/>
</md-text-button>
)
});
}
async logout() {
await Request.post(route('logout'));
router.visit(route('login'));
}
}