From 0b706c5eeee8d87f0894766afb652716b15c7863 Mon Sep 17 00:00:00 2001
From: Jed Fox <git@jedfox.com>
Date: Tue, 30 Aug 2022 18:20:26 -0400
Subject: [PATCH] =?UTF-8?q?Update=20the=20server=20button=20in=20the=20cor?=
 =?UTF-8?q?ner=20to=20take=20the=20user=20to=20the=20=E2=80=9Cchange=20ser?=
 =?UTF-8?q?ver=E2=80=9D=20page=20if=20none=20is=20configured?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/components/LoggedInUser.js             | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/packages/desktop-client/src/components/LoggedInUser.js b/packages/desktop-client/src/components/LoggedInUser.js
index 46d472fe1..6f0160973 100644
--- a/packages/desktop-client/src/components/LoggedInUser.js
+++ b/packages/desktop-client/src/components/LoggedInUser.js
@@ -1,6 +1,6 @@
 import React, { useState, useEffect } from 'react';
 import { connect } from 'react-redux';
-import { withRouter } from 'react-router';
+import { useHistory, withRouter } from 'react-router';
 import * as actions from 'loot-core/src/client/actions';
 import {
   View,
@@ -10,9 +10,9 @@ import {
   Menu
 } from 'loot-design/src/components/common';
 import { colors } from 'loot-design/src/style';
+import useServerURL from '../hooks/useServerURL';
 
 function LoggedInUser({
-  history,
   files,
   budgetId,
   userData,
@@ -26,6 +26,8 @@ function LoggedInUser({
 }) {
   let [loading, setLoading] = useState(true);
   let [menuOpen, setMenuOpen] = useState(false);
+  const url = useServerURL();
+  const history = useHistory();
 
   useEffect(() => {
     getUserData().then(() => setLoading(false));
@@ -33,7 +35,7 @@ function LoggedInUser({
 
   async function onChangePassword() {
     await closeBudget();
-    window.__history.push('/change-password');
+    history.push('/change-password');
   }
 
   function onMenuSelect(type) {
@@ -51,7 +53,11 @@ function LoggedInUser({
   }
 
   function onClick() {
-    setMenuOpen(true);
+    if (url) {
+      setMenuOpen(true);
+    } else {
+      history.push('/config-server');
+    }
   }
 
   if (loading) {
@@ -68,7 +74,7 @@ function LoggedInUser({
     return (
       <View style={[{ flexDirection: 'row', alignItems: 'center' }, style]}>
         <Button bare onClick={onClick} style={{ color }}>
-          Server
+          {url ? 'Server' : 'No server'}
         </Button>
 
         {menuOpen && (
@@ -82,7 +88,7 @@ function LoggedInUser({
               items={[
                 { name: 'change-password', text: 'Change password' },
                 { name: 'sign-out', text: 'Sign out' }
-              ].filter(x => x)}
+              ]}
             />
           </Tooltip>
         )}
-- 
GitLab