on master help sign in
Better code style for invite button building
8130b60Fang
src/views/Point.js+8−7
@@ -25,7 +25,7 @@ const isPlanet = point =>
25 azimuth.getPointSize(point) === azimuth.PointSize.Planet;
25 azimuth.getPointSize(point) === azimuth.PointSize.Planet;
26
26
27export default function Point() {
27export default function Point() {
28− const history = useHistory();
28+ const { push, names } = useHistory();
29 const { pointCursor } = usePointCursor();
29 const { pointCursor } = usePointCursor();
30 const { wallet } = useWallet();
30 const { wallet } = useWallet();
31
31
@@ -45,17 +45,19 @@ export default function Point() {
45
45
46 const showActions = Just.hasInstance(wallet);
46 const showActions = Just.hasInstance(wallet);
47
47
48− const goAdmin = useCallback(() => history.push(ROUTE_NAMES.ADMIN), [history]);
48+ const goAdmin = useCallback(() => push(names.ADMIN), [history, names]);
49
49
50− const goInvite = useCallback(() => history.push(ROUTE_NAMES.INVITE), [
50+ const goInvite = useCallback(() => push(names.INVITE), [history, names]);
51+
52+ const goParties = useCallback(() => push(names.INVITES_MANAGE), [
51 history,
53 history,
54+ names,
52 ]);
55 ]);
53
56
54− const inviteButton = useMemo(() => {
57+ const inviteButton = (() => {
55 switch (azimuth.getPointSize(point)) {
58 switch (azimuth.getPointSize(point)) {
56 case azimuth.PointSize.Planet:
59 case azimuth.PointSize.Planet:
57 const availableInvitesText = matchBlinky(availableInvites);
60 const availableInvitesText = matchBlinky(availableInvites);
58− const goInvite = () => history.push(ROUTE_NAMES.INVITE);
59 return (
61 return (
60 <FooterButton disabled={!isOwner} onClick={goInvite}>
62 <FooterButton disabled={!isOwner} onClick={goInvite}>
61 Invite <sup>{availableInvitesText} available</sup>
63 Invite <sup>{availableInvitesText} available</sup>
@@ -63,7 +65,6 @@ export default function Point() {
63 );
65 );
64 //
66 //
65 case azimuth.PointSize.Star:
67 case azimuth.PointSize.Star:
66− const goParties = () => history.push(ROUTE_NAMES.INVITES_MANAGE);
67 return (
68 return (
68 <FooterButton disabled={!isOwner} onClick={goParties}>
69 <FooterButton disabled={!isOwner} onClick={goParties}>
69 Manage parties
70 Manage parties
@@ -73,7 +74,7 @@ export default function Point() {
73 default:
74 default:
74 return null;
75 return null;
75 }
76 }
76− }, [point, history, isOwner, availableInvites]);
77+ })();
77
78
78 // sync the current cursor
79 // sync the current cursor
79 useSyncOwnedPoints([point]);
80 useSyncOwnedPoints([point]);