changing user settings defined whitelabel when mismatched, giving team whitelabel if it's empty

This commit is contained in:
Carter 2026-06-11 13:37:07 -06:00
parent 7dd7504415
commit 7b1642bb1a
4 changed files with 508 additions and 505 deletions

View file

@ -7,12 +7,14 @@ import NavigationContainer from '../navigation/NavigationContainer'
import { GlobalState, GlobalStateAction, StateProvider } from '../providers/StateContainer'
import { User } from '../models/user'
import { Team } from '../models/team'
import { getWhitelabel } from '../services/whiteLabel'
import { makeStyles } from '@mui/styles'
import { CssBaseline, Theme } from '@mui/material'
import { AppThemeProvider } from 'theme/AppThemeProvider'
import HTTPProvider from 'providers/http'
import { useMobile, useSnackbar } from 'hooks'
import { initCrisp, isCrispEnabled } from '../chat/CrispChat'
import { useTeamAPI } from '../providers/pond/teamAPI'
// import FirmwareLoader from './FirmwareLoader'
const reducer = (state: GlobalState, action: GlobalStateAction): GlobalState => {
@ -61,6 +63,7 @@ export default function UserWrapper(props: Props) {
const { token } = props;
const [loading, setLoading] = useState(false)
const userAPI = useUserAPI();
const teamAPI = useTeamAPI();
const classes = useStyles();
const hasFetched = useRef(false);
const [global, setGlobal] = useState<undefined | GlobalState>(undefined)
@ -81,9 +84,22 @@ export default function UserWrapper(props: Props) {
if (hasFetched.current) return;
setLoading(true)
userAPI.getUserWithTeam(user_id).then(resp => {
const loadedUser = resp.data.user ? User.create(resp.data.user) : User.create();
const loadedTeam = resp.data.team ? Team.create(resp.data.team) : Team.create();
const currentSlug = getWhitelabel().slug;
if (!loadedUser.empty() && loadedUser.settings.whitelabel !== currentSlug) {
loadedUser.settings.whitelabel = currentSlug;
userAPI.updateUser(loadedUser.id(), loadedUser.protobuf()).catch(() => {});
}
if (!loadedTeam.empty() && loadedTeam.settings.whitelabel === "") {
loadedTeam.settings.whitelabel = currentSlug;
teamAPI.updateTeam(loadedTeam.key(), loadedTeam.settings).catch(() => {});
}
setGlobal({
user: resp.data.user ? User.create(resp.data.user) : User.create(),
team: resp.data.team ? Team.create(resp.data.team) : Team.create(),
user: loadedUser,
team: loadedTeam,
as: resp.data.user?.settings?.useTeam === true ? resp.data.user.settings.defaultTeam : "",
showErrors: false,
userTeamPermissions: [],