mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-19 05:55:34 +09:00
fix(app): smooth the fluxer.com migration and expired re-login (#3019)
This commit is contained in:
1 parent
a728be4062
commit
c9ae5b6ee8
75 files changed
+3284
-2368
No files matched your search
@@ -23,6 +23,7 @@
|
||||
min-width: 0;
|
||||
padding: 0.5rem 0.75rem;
|
||||
border-radius: 0.75rem;
|
||||
text-align: start;
|
||||
background-color: var(--background-secondary);
|
||||
border: 0.0625rem solid var(--background-modifier-accent);
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ export const AccountRow = observer(
|
||||
const variantClassName = variant === 'manage' ? styles.manage : variant === 'compact' ? styles.compact : undefined;
|
||||
const isClickable = typeof onClick === 'function';
|
||||
const MainButtonComponent = isClickable ? 'button' : 'div';
|
||||
const showMenuButton = Boolean(onMenuClick && variant !== 'compact' && !showCaretIndicator);
|
||||
const showMenuButton = Boolean(onMenuClick && variant !== 'compact');
|
||||
return (
|
||||
<div
|
||||
className={clsx(styles.row, variantClassName, showMenuButton && styles.withMenu, className)}
|
||||
|
||||
@@ -32,10 +32,6 @@
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.accountListWrapper {
|
||||
min-height: 7.5rem;
|
||||
}
|
||||
|
||||
.scroller {
|
||||
max-height: 17.5rem;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ import {modal} from '@app/features/ui/commands/ModalCommands';
|
||||
import {Scroller} from '@app/features/ui/components/Scroller';
|
||||
import {msg} from '@lingui/core/macro';
|
||||
import {Trans, useLingui} from '@lingui/react/macro';
|
||||
import {PlusIcon, SignOutIcon} from '@phosphor-icons/react';
|
||||
import {PlusIcon, SignInIcon, SignOutIcon} from '@phosphor-icons/react';
|
||||
import {observer} from 'mobx-react-lite';
|
||||
import type React from 'react';
|
||||
import {useCallback} from 'react';
|
||||
@@ -101,17 +101,20 @@ export const AccountSelector = observer(
|
||||
(account: Account) => (event: React.MouseEvent<HTMLButtonElement>) => {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
if (disabled) {
|
||||
return;
|
||||
}
|
||||
ContextMenuCommands.openFromEvent(event, (props) => (
|
||||
<MenuGroup data-flx="auth.accounts.account-selector.open-menu.menu-group">
|
||||
<MenuItem
|
||||
icon={<SignOutIcon size={18} data-flx="auth.accounts.account-selector.open-menu.sign-out-icon" />}
|
||||
icon={<SignInIcon size={18} data-flx="auth.accounts.account-selector.open-menu.sign-in-icon" />}
|
||||
onClick={() => {
|
||||
props.onClose();
|
||||
onSelectAccount(account);
|
||||
}}
|
||||
data-flx="auth.accounts.account-selector.open-menu.menu-item.close"
|
||||
>
|
||||
<Trans>Select account</Trans>
|
||||
{account.isValid === false ? <Trans>Sign in again</Trans> : <Trans>Select account</Trans>}
|
||||
</MenuItem>
|
||||
<MenuItem
|
||||
danger
|
||||
@@ -127,7 +130,7 @@ export const AccountSelector = observer(
|
||||
</MenuGroup>
|
||||
));
|
||||
},
|
||||
[openSignOutConfirm, onSelectAccount],
|
||||
[disabled, openSignOutConfirm, onSelectAccount],
|
||||
);
|
||||
return (
|
||||
<div className={styles.container} data-flx="auth.accounts.account-selector.container">
|
||||
@@ -142,38 +145,36 @@ export const AccountSelector = observer(
|
||||
{error}
|
||||
</div>
|
||||
)}
|
||||
<div className={styles.accountListWrapper} data-flx="auth.accounts.account-selector.account-list-wrapper">
|
||||
{accounts.length === 0 ? (
|
||||
<div className={styles.noAccounts} data-flx="auth.accounts.account-selector.no-accounts">
|
||||
<Trans>No accounts</Trans>
|
||||
{accounts.length === 0 ? (
|
||||
<div className={styles.noAccounts} data-flx="auth.accounts.account-selector.no-accounts">
|
||||
<Trans>No accounts</Trans>
|
||||
</div>
|
||||
) : (
|
||||
<Scroller
|
||||
className={styles.scroller}
|
||||
key={scrollerKey ?? 'account-selector-scroller'}
|
||||
data-flx="auth.accounts.account-selector.scroller"
|
||||
>
|
||||
<div className={styles.accountList} data-flx="auth.accounts.account-selector.account-list">
|
||||
{accounts.map((account) => {
|
||||
const isCurrent = account.userId === currentAccountId;
|
||||
return (
|
||||
<AccountRow
|
||||
key={account.userId}
|
||||
account={account}
|
||||
variant="manage"
|
||||
isCurrent={isCurrent}
|
||||
isExpired={account.isValid === false}
|
||||
onClick={clickableRows && !disabled ? () => onSelectAccount(account) : undefined}
|
||||
showCaretIndicator={clickableRows && isCurrent}
|
||||
onMenuClick={isCurrent ? undefined : openMenu(account)}
|
||||
data-flx="auth.accounts.account-selector.account-row.select-account"
|
||||
/>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
) : (
|
||||
<Scroller
|
||||
className={styles.scroller}
|
||||
key={scrollerKey ?? 'account-selector-scroller'}
|
||||
data-flx="auth.accounts.account-selector.scroller"
|
||||
>
|
||||
<div className={styles.accountList} data-flx="auth.accounts.account-selector.account-list">
|
||||
{accounts.map((account) => {
|
||||
const isCurrent = account.userId === currentAccountId;
|
||||
return (
|
||||
<AccountRow
|
||||
key={account.userId}
|
||||
account={account}
|
||||
variant="manage"
|
||||
isCurrent={isCurrent}
|
||||
isExpired={account.isValid === false}
|
||||
onClick={clickableRows && !disabled ? () => onSelectAccount(account) : undefined}
|
||||
showCaretIndicator={clickableRows}
|
||||
onMenuClick={!clickableRows && !disabled ? openMenu(account) : undefined}
|
||||
data-flx="auth.accounts.account-selector.account-row.select-account"
|
||||
/>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</Scroller>
|
||||
)}
|
||||
</div>
|
||||
</Scroller>
|
||||
)}
|
||||
{onAddAccount && (
|
||||
<Button
|
||||
variant="secondary"
|
||||
|
||||
@@ -66,6 +66,7 @@ const LoginPageMFA = observer(function LoginPageMFA() {
|
||||
const handleMfaSuccess = useCallback(
|
||||
async (payload: LoginSuccessPayload) => {
|
||||
if (isHandoff) {
|
||||
await AccountManager.refreshStoredAccount(payload.userId, payload.token, payload.userData);
|
||||
await handoff.start(payload);
|
||||
return;
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user