import { types } from "mobx-state-tree";
|
import { camelizeKeys } from "../utils/utilities";
|
|
export const UserExtended = types
|
.model("UserExtended", {
|
id: types.identifierNumber,
|
firstName: types.maybeNull(types.string),
|
lastName: types.maybeNull(types.string),
|
username: types.maybeNull(types.string),
|
email: types.maybeNull(types.string),
|
lastActivity: types.maybeNull(types.string),
|
avatar: types.maybeNull(types.string),
|
initials: types.maybeNull(types.string),
|
phone: types.maybeNull(types.string),
|
})
|
.preProcessSnapshot((sn) => {
|
return camelizeKeys(sn ?? {});
|
})
|
.views((self) => ({
|
get displayName() {
|
if (self.firstName || self.lastName) return [self.firstName, self.lastName].join(" ").trim();
|
|
return "";
|
},
|
}));
|
|
/**
|
* User store of Label Studio
|
*/
|
const UserStore = types
|
.model("UserStore", {
|
/**
|
* Personal key of user
|
*/
|
id: types.maybeNull(types.integer),
|
/**
|
* Personal key of user
|
*/
|
pk: types.maybeNull(types.integer),
|
/**
|
* Name of user
|
*/
|
firstName: types.maybeNull(types.string),
|
/**
|
* Last name of user
|
*/
|
lastName: types.maybeNull(types.string),
|
})
|
.views((self) => ({
|
get displayName() {
|
if (self.firstName || self.lastName) return `${self.firstName} ${self.lastName}`;
|
|
return "";
|
},
|
}));
|
|
export default UserStore;
|