2023-01-20 17:07:14 +00:00
|
|
|
import "./Index.css";
|
2023-02-08 21:10:26 +00:00
|
|
|
import { FormattedMessage } from "react-intl";
|
2023-01-27 21:10:14 +00:00
|
|
|
import { useNavigate } from "react-router-dom";
|
2023-03-02 17:47:15 +00:00
|
|
|
import Icon from "Icons/Icon";
|
2023-04-19 12:10:41 +00:00
|
|
|
import { LoginStore, logout } from "Login";
|
2023-04-14 11:33:19 +00:00
|
|
|
import useLogin from "Hooks/useLogin";
|
|
|
|
import { unwrap } from "Util";
|
2023-04-19 12:10:41 +00:00
|
|
|
import { getCurrentSubscription } from "Subscription";
|
2023-04-21 20:55:04 +00:00
|
|
|
import { CollapsedSection } from "Element/Collapsed";
|
2023-01-27 21:10:14 +00:00
|
|
|
|
2023-02-08 21:10:26 +00:00
|
|
|
import messages from "./messages";
|
|
|
|
|
2023-01-20 17:07:14 +00:00
|
|
|
const SettingsIndex = () => {
|
2023-04-14 11:33:19 +00:00
|
|
|
const login = useLogin();
|
2023-02-07 20:04:50 +00:00
|
|
|
const navigate = useNavigate();
|
2023-04-19 12:10:41 +00:00
|
|
|
const sub = getCurrentSubscription(LoginStore.allSubscriptions());
|
2023-01-20 17:07:14 +00:00
|
|
|
|
2023-02-07 20:04:50 +00:00
|
|
|
function handleLogout() {
|
2023-04-14 11:33:19 +00:00
|
|
|
logout(unwrap(login.publicKey));
|
|
|
|
navigate("/");
|
2023-02-07 20:04:50 +00:00
|
|
|
}
|
2023-01-27 21:10:14 +00:00
|
|
|
|
2023-02-07 20:04:50 +00:00
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<div className="settings-nav">
|
2023-04-21 20:55:04 +00:00
|
|
|
<CollapsedSection
|
|
|
|
title={
|
|
|
|
<div className="flex">
|
|
|
|
<Icon name="user" className="mr10" />
|
|
|
|
<FormattedMessage defaultMessage="Account" />
|
|
|
|
</div>
|
|
|
|
}
|
|
|
|
className="settings-group-header">
|
|
|
|
<div className="card">
|
|
|
|
<div className="settings-row inner" onClick={() => navigate("profile")}>
|
|
|
|
<Icon name="profile" />
|
|
|
|
<FormattedMessage {...messages.Profile} />
|
|
|
|
<Icon name="arrowFront" />
|
|
|
|
</div>
|
|
|
|
<div className="settings-row inner" onClick={() => navigate("relays")}>
|
|
|
|
<Icon name="relay" />
|
|
|
|
<FormattedMessage {...messages.Relays} />
|
|
|
|
<Icon name="arrowFront" />
|
|
|
|
</div>
|
|
|
|
<div className="settings-row inner" onClick={() => navigate("keys")}>
|
|
|
|
<Icon name="key" />
|
|
|
|
<FormattedMessage defaultMessage="Export Keys" />
|
|
|
|
<Icon name="arrowFront" />
|
|
|
|
</div>
|
|
|
|
<div className="settings-row inner" onClick={() => navigate("handle")}>
|
|
|
|
<Icon name="badge" />
|
|
|
|
<FormattedMessage defaultMessage="Nostr Adddress" />
|
|
|
|
<Icon name="arrowFront" />
|
|
|
|
</div>
|
|
|
|
<div className="settings-row inner" onClick={() => navigate("/subscribe/manage")}>
|
|
|
|
<Icon name="diamond" />
|
|
|
|
<FormattedMessage defaultMessage="Subscription" />
|
|
|
|
<Icon name="arrowFront" />
|
|
|
|
</div>
|
|
|
|
{sub && (
|
|
|
|
<div className="settings-row inner" onClick={() => navigate("accounts")}>
|
|
|
|
<Icon name="code-circle" />
|
|
|
|
<FormattedMessage defaultMessage="Account Switcher" />
|
|
|
|
<Icon name="arrowFront" />
|
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
</div>
|
|
|
|
</CollapsedSection>
|
|
|
|
|
2023-02-07 20:04:50 +00:00
|
|
|
<div className="settings-row" onClick={() => navigate("preferences")}>
|
2023-03-02 17:59:16 +00:00
|
|
|
<Icon name="gear" />
|
2023-02-08 21:10:26 +00:00
|
|
|
<FormattedMessage {...messages.Preferences} />
|
2023-03-02 17:59:16 +00:00
|
|
|
<Icon name="arrowFront" />
|
2023-02-07 20:04:50 +00:00
|
|
|
</div>
|
2023-04-21 20:55:04 +00:00
|
|
|
|
2023-03-02 15:23:53 +00:00
|
|
|
<div className="settings-row" onClick={() => navigate("wallet")}>
|
2023-04-14 12:08:42 +00:00
|
|
|
<Icon name="wallet" />
|
2023-03-02 15:23:53 +00:00
|
|
|
<FormattedMessage defaultMessage="Wallet" />
|
2023-03-02 18:46:15 +00:00
|
|
|
<Icon name="arrowFront" />
|
2023-03-02 15:23:53 +00:00
|
|
|
</div>
|
2023-02-07 20:04:50 +00:00
|
|
|
<div className="settings-row" onClick={() => navigate("/donate")}>
|
2023-03-02 17:59:16 +00:00
|
|
|
<Icon name="heart" />
|
2023-02-09 12:57:52 +00:00
|
|
|
<FormattedMessage {...messages.Donate} />
|
2023-03-02 17:59:16 +00:00
|
|
|
<Icon name="arrowFront" />
|
2023-02-07 20:04:50 +00:00
|
|
|
</div>
|
2023-04-21 20:55:04 +00:00
|
|
|
|
2023-02-07 20:04:50 +00:00
|
|
|
<div className="settings-row" onClick={handleLogout}>
|
2023-03-02 17:59:16 +00:00
|
|
|
<Icon name="logout" />
|
2023-02-08 21:10:26 +00:00
|
|
|
<FormattedMessage {...messages.LogOut} />
|
2023-03-02 17:59:16 +00:00
|
|
|
<Icon name="arrowFront" />
|
2023-02-07 20:04:50 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</>
|
|
|
|
);
|
|
|
|
};
|
2023-01-20 17:07:14 +00:00
|
|
|
|
2023-02-05 22:44:31 +00:00
|
|
|
export default SettingsIndex;
|