mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-04-03 04:41:06 +02:00
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.
48 lines
1.4 KiB
TypeScript
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'));
|
|
}
|
|
}
|