mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-29 22:35:50 -04:00

* Add FrontendConfig and Loader Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Merge more setup into the application loader Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Rename config files Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Remove blank line Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Fix url Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Make strings more specific Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Restructure store use Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * split methods and actions Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * extract code Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * remove actions.ts Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * add reason and rename component Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * remove unused call Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Use redux store in api Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * activate email in backend config Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * add new line Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * reduce code Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Make error more specific Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Use expectedResponseCode Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Update src/redux/backend-config/types.ts Co-authored-by: Philip Molares <git@molar.es> * Update src/components/application-loader/application-loader.tsx Co-authored-by: Philip Molares <git@molar.es> * Update src/components/application-loader/application-loader.tsx Co-authored-by: Philip Molares <git@molar.es> * Update src/components/application-loader/application-loader.tsx Co-authored-by: Philip Molares <git@molar.es> * Use fragment Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> Co-authored-by: Philip Molares <git@molar.es>
52 lines
2 KiB
TypeScript
52 lines
2 KiB
TypeScript
import {Dropdown} from "react-bootstrap";
|
|
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
|
|
import React from "react";
|
|
import {useSelector} from "react-redux";
|
|
import {ApplicationState} from "../../../../../redux";
|
|
import {LinkContainer} from "react-router-bootstrap";
|
|
import {clearUser} from "../../../../../redux/user/methods";
|
|
import "./user-dropdown.scss";
|
|
import {Trans} from "react-i18next";
|
|
|
|
export const UserDropdown: React.FC = () => {
|
|
const user = useSelector((state: ApplicationState) => state.user);
|
|
|
|
return (
|
|
<Dropdown alignRight>
|
|
<Dropdown.Toggle size="sm" variant="dark" id="dropdown-basic">
|
|
<div className='d-inline-flex align-items-baseline'>
|
|
<img
|
|
src={user.photo}
|
|
className="user-avatar"
|
|
alt={`Avatar of ${user.name}`}
|
|
/><span>{user.name}</span>
|
|
</div>
|
|
</Dropdown.Toggle>
|
|
|
|
<Dropdown.Menu>
|
|
<LinkContainer to={`/features`}>
|
|
<Dropdown.Item>
|
|
<FontAwesomeIcon icon="bolt"/>
|
|
<Trans i18nKey="features"/>
|
|
</Dropdown.Item>
|
|
</LinkContainer>
|
|
<LinkContainer to={`/me/export`}>
|
|
<Dropdown.Item>
|
|
<FontAwesomeIcon icon="cloud-download-alt"/>
|
|
<Trans i18nKey="exportUserData"/>
|
|
</Dropdown.Item>
|
|
</LinkContainer>
|
|
<Dropdown.Item href="#">
|
|
<FontAwesomeIcon icon="trash"/>
|
|
<Trans i18nKey="deleteUser"/>
|
|
</Dropdown.Item>
|
|
<Dropdown.Item
|
|
onClick={() => {
|
|
clearUser();
|
|
}}>
|
|
<FontAwesomeIcon icon="sign-out-alt"/>
|
|
<Trans i18nKey="signOut"/>
|
|
</Dropdown.Item>
|
|
</Dropdown.Menu>
|
|
</Dropdown>)
|
|
};
|