merged sendgrid whitelabel
This commit is contained in:
commit
8c45dbd00e
4 changed files with 508 additions and 506 deletions
|
|
@ -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: [],
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ export default function TeamSettings(props: Props) {
|
|||
const [loading, setLoading] = useState<boolean>(false);
|
||||
const [nameField, setNameField] = useState<string>("");
|
||||
const [infoField, setInfoField] = useState<string>("");
|
||||
const [whitelabelField, setWhitelabelField] = useState<string>("");
|
||||
const [url, setUrl] = useState<string>("");
|
||||
const snackbar = useSnackbar();
|
||||
const [tab, setTab] = useState(0);
|
||||
|
|
@ -55,6 +56,7 @@ export default function TeamSettings(props: Props) {
|
|||
if (team) {
|
||||
setNameField(team.name());
|
||||
setInfoField(team.settings.info);
|
||||
setWhitelabelField(team.settings.whitelabel);
|
||||
setUrl(team.settings.avatar);
|
||||
}
|
||||
}, [team]);
|
||||
|
|
@ -77,6 +79,7 @@ export default function TeamSettings(props: Props) {
|
|||
let team = pond.TeamSettings.create();
|
||||
team.name = nameField;
|
||||
team.info = infoField;
|
||||
team.whitelabel = whitelabelField;
|
||||
setLoading(true);
|
||||
teamAPI
|
||||
.addTeam(team)
|
||||
|
|
@ -101,6 +104,7 @@ export default function TeamSettings(props: Props) {
|
|||
let newTeam = pond.TeamSettings.create();
|
||||
newTeam.name = nameField;
|
||||
newTeam.info = infoField;
|
||||
newTeam.whitelabel = whitelabelField;
|
||||
newTeam.avatar = url;
|
||||
if (teamKey) {
|
||||
teamAPI
|
||||
|
|
@ -131,6 +135,7 @@ export default function TeamSettings(props: Props) {
|
|||
const close = () => {
|
||||
setNameField("");
|
||||
setInfoField("");
|
||||
setWhitelabelField("");
|
||||
setUrl("");
|
||||
closeTeamDialogCallback();
|
||||
};
|
||||
|
|
@ -194,6 +199,15 @@ export default function TeamSettings(props: Props) {
|
|||
style={{ margin: theme.spacing(1) }}
|
||||
fullWidth
|
||||
/>
|
||||
<TextField
|
||||
label="Whitelabel"
|
||||
value={whitelabelField}
|
||||
onChange={event => setWhitelabelField(event?.target.value)}
|
||||
variant="outlined"
|
||||
style={{ margin: theme.spacing(1) }}
|
||||
placeholder="e.g. mivent, adaptive-ag, intellifarms"
|
||||
fullWidth
|
||||
/>
|
||||
</DialogContent>
|
||||
);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue