aboutsummaryrefslogtreecommitdiffstats
path: root/webui/src/layout
diff options
context:
space:
mode:
authorLuke Granger-Brown <git@lukegb.com>2020-06-18 18:44:52 +0100
committerMichael Muré <batolettre@gmail.com>2020-06-27 22:58:21 +0200
commitcf67c78823bd1e7591c2199d51aa3f3fffed73c4 (patch)
tree4c2d07f0780a61bcde5f3e47c3ebaa2785fec64f /webui/src/layout
parentdfdb5e090b9368d336cb7552c8c462bef243fbb0 (diff)
downloadgit-bug-cf67c78823bd1e7591c2199d51aa3f3fffed73c4.tar.gz
Refactor webui changes.
Don't use contexts, just raw Apollo, since it's cached anyway. Change "ReadonlyHidden" to "IfLoggedIn".
Diffstat (limited to 'webui/src/layout')
-rw-r--r--webui/src/layout/CurrentIdentity.tsx30
-rw-r--r--webui/src/layout/CurrentIdentityContext.tsx6
-rw-r--r--webui/src/layout/IfLoggedIn.tsx14
-rw-r--r--webui/src/layout/ReadonlyHidden.tsx19
-rw-r--r--webui/src/layout/index.tsx6
5 files changed, 27 insertions, 48 deletions
diff --git a/webui/src/layout/CurrentIdentity.tsx b/webui/src/layout/CurrentIdentity.tsx
index 55060179..21f489ef 100644
--- a/webui/src/layout/CurrentIdentity.tsx
+++ b/webui/src/layout/CurrentIdentity.tsx
@@ -3,7 +3,7 @@ import React from 'react';
import Avatar from '@material-ui/core/Avatar';
import { makeStyles } from '@material-ui/core/styles';
-import CurrentIdentityContext from './CurrentIdentityContext';
+import { useCurrentIdentityQuery } from './CurrentIdentity.generated';
const useStyles = makeStyles(theme => ({
displayName: {
@@ -13,26 +13,18 @@ const useStyles = makeStyles(theme => ({
const CurrentIdentity = () => {
const classes = useStyles();
+ const { loading, error, data } = useCurrentIdentityQuery();
- return (
- <CurrentIdentityContext.Consumer>
- {context => {
- if (!context) return null;
- const { loading, error, data } = context as any;
-
- if (error || loading || !data?.repository?.userIdentity) return null;
+ if (error || loading || !data?.repository?.userIdentity) return null;
- const user = data.repository.userIdentity;
- return (
- <>
- <Avatar src={user.avatarUrl ? user.avatarUrl : undefined}>
- {user.displayName.charAt(0).toUpperCase()}
- </Avatar>
- <div className={classes.displayName}>{user.displayName}</div>
- </>
- );
- }}
- </CurrentIdentityContext.Consumer>
+ const user = data.repository.userIdentity;
+ return (
+ <>
+ <Avatar src={user.avatarUrl ? user.avatarUrl : undefined}>
+ {user.displayName.charAt(0).toUpperCase()}
+ </Avatar>
+ <div className={classes.displayName}>{user.displayName}</div>
+ </>
);
};
diff --git a/webui/src/layout/CurrentIdentityContext.tsx b/webui/src/layout/CurrentIdentityContext.tsx
deleted file mode 100644
index 78f2f263..00000000
--- a/webui/src/layout/CurrentIdentityContext.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-import React from 'react';
-
-import { CurrentIdentityQueryResult } from './CurrentIdentity.generated';
-
-const Context = React.createContext(null as CurrentIdentityQueryResult | null);
-export default Context;
diff --git a/webui/src/layout/IfLoggedIn.tsx b/webui/src/layout/IfLoggedIn.tsx
new file mode 100644
index 00000000..8b9058dc
--- /dev/null
+++ b/webui/src/layout/IfLoggedIn.tsx
@@ -0,0 +1,14 @@
+import React from 'react';
+
+import { useCurrentIdentityQuery } from './CurrentIdentity.generated';
+
+type Props = { children: React.ReactNode };
+const IfLoggedIn = ({ children }: Props) => {
+ const { loading, error, data } = useCurrentIdentityQuery();
+
+ if (error || loading || !data?.repository?.userIdentity) return null;
+
+ return <>{children}</>;
+};
+
+export default IfLoggedIn;
diff --git a/webui/src/layout/ReadonlyHidden.tsx b/webui/src/layout/ReadonlyHidden.tsx
deleted file mode 100644
index 9ed0af6a..00000000
--- a/webui/src/layout/ReadonlyHidden.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import React from 'react';
-
-import CurrentIdentityContext from './CurrentIdentityContext';
-
-type Props = { children: React.ReactNode };
-const ReadonlyHidden = ({ children }: Props) => (
- <CurrentIdentityContext.Consumer>
- {context => {
- if (!context) return null;
- const { loading, error, data } = context;
-
- if (error || loading || !data?.repository?.userIdentity) return null;
-
- return <>{children}</>;
- }}
- </CurrentIdentityContext.Consumer>
-);
-
-export default ReadonlyHidden;
diff --git a/webui/src/layout/index.tsx b/webui/src/layout/index.tsx
index 78ff5ae8..42a0cfc1 100644
--- a/webui/src/layout/index.tsx
+++ b/webui/src/layout/index.tsx
@@ -2,18 +2,16 @@ import React from 'react';
import CssBaseline from '@material-ui/core/CssBaseline';
-import { useCurrentIdentityQuery } from './CurrentIdentity.generated';
-import CurrentIdentityContext from './CurrentIdentityContext';
import Header from './Header';
type Props = { children: React.ReactNode };
function Layout({ children }: Props) {
return (
- <CurrentIdentityContext.Provider value={useCurrentIdentityQuery()}>
+ <>
<CssBaseline />
<Header />
{children}
- </CurrentIdentityContext.Provider>
+ </>
);
}