fix: sign out dialog disappearing when account menu is unfocused (#863)

This commit is contained in:
Aman Harwara
2022-02-12 20:53:49 +05:30
committed by GitHub
parent 65b0e254c9
commit 0e1b94b5cd
3 changed files with 24 additions and 32 deletions

View File

@@ -7,7 +7,6 @@ import { GeneralAccountMenu } from './GeneralAccountMenu';
import { FunctionComponent } from 'preact';
import { SignInPane } from './SignIn';
import { CreateAccount } from './CreateAccount';
import { ConfirmSignoutContainer } from '../ConfirmSignoutModal';
import { ConfirmPassword } from './ConfirmPassword';
import { JSXInternal } from 'preact/src/jsx';
@@ -130,10 +129,6 @@ export const AccountMenu: FunctionComponent<Props> = observer(
closeMenu={closeAccountMenu}
/>
</div>
<ConfirmSignoutContainer
appState={appState}
application={application}
/>
</div>
);
}

View File

@@ -24,6 +24,7 @@ import { PurchaseFlowWrapper } from '@/purchaseFlow/PurchaseFlowWrapper';
import { render } from 'preact';
import { PermissionsModal } from './PermissionsModal';
import { PremiumModalProvider } from './Premium';
import { ConfirmSignoutContainer } from './ConfirmSignoutModal';
type Props = {
application: WebApplication;
@@ -265,6 +266,11 @@ export class ApplicationView extends PureComponent<Props, State> {
application={this.application}
appState={this.appState}
/>
<ConfirmSignoutContainer
appState={this.appState}
application={this.application}
/>
</>
)}
</div>

View File

@@ -1,5 +1,4 @@
import { Button } from '@/components/Button';
import { ConfirmSignoutContainer } from '@/components/ConfirmSignoutModal';
import { OtherSessionsSignOutContainer } from '@/components/OtherSessionsSignOut';
import {
PreferencesGroup,
@@ -58,35 +57,28 @@ const SignOutView: FunctionComponent<{
appState={appState}
application={application}
/>
<ConfirmSignoutContainer appState={appState} application={application} />
</>
);
});
const ClearSessionDataView: FunctionComponent<{
application: WebApplication;
appState: AppState;
}> = observer(({ application, appState }) => {
}> = observer(({ appState }) => {
return (
<>
<PreferencesGroup>
<PreferencesSegment>
<Title>Clear session data</Title>
<Text>This will delete all local items and preferences.</Text>
<div className="min-h-3" />
<Button
type="danger"
label="Clear Session Data"
onClick={() => {
appState.accountMenu.setSigningOut(true);
}}
/>
</PreferencesSegment>
</PreferencesGroup>
<ConfirmSignoutContainer appState={appState} application={application} />
</>
<PreferencesGroup>
<PreferencesSegment>
<Title>Clear session data</Title>
<Text>This will delete all local items and preferences.</Text>
<div className="min-h-3" />
<Button
type="danger"
label="Clear Session Data"
onClick={() => {
appState.accountMenu.setSigningOut(true);
}}
/>
</PreferencesSegment>
</PreferencesGroup>
);
});
@@ -94,9 +86,8 @@ export const SignOutWrapper: FunctionComponent<{
application: WebApplication;
appState: AppState;
}> = observer(({ application, appState }) => {
if (!application.hasAccount())
return (
<ClearSessionDataView appState={appState} application={application} />
);
if (!application.hasAccount()) {
return <ClearSessionDataView appState={appState} />;
}
return <SignOutView appState={appState} application={application} />;
});