chore: Move to Typescript (#2783)
This PR moves the entire project to Typescript. Due to the ~1000 ignores this will lead to a messy codebase for a while, but the churn is worth it – all of those ignore comments are places that were never type-safe previously. closes #1282
This commit is contained in:
45
app/models/User.ts
Normal file
45
app/models/User.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { computed } from "mobx";
|
||||
import { Role } from "@shared/types";
|
||||
import BaseModel from "./BaseModel";
|
||||
|
||||
class User extends BaseModel {
|
||||
avatarUrl: string;
|
||||
|
||||
id: string;
|
||||
|
||||
name: string;
|
||||
|
||||
email: string;
|
||||
|
||||
color: string;
|
||||
|
||||
isAdmin: boolean;
|
||||
|
||||
isViewer: boolean;
|
||||
|
||||
lastActiveAt: string;
|
||||
|
||||
isSuspended: boolean;
|
||||
|
||||
createdAt: string;
|
||||
|
||||
language: string;
|
||||
|
||||
@computed
|
||||
get isInvited(): boolean {
|
||||
return !this.lastActiveAt;
|
||||
}
|
||||
|
||||
@computed
|
||||
get role(): Role {
|
||||
if (this.isAdmin) {
|
||||
return "admin";
|
||||
} else if (this.isViewer) {
|
||||
return "viewer";
|
||||
} else {
|
||||
return "member";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default User;
|
||||
Reference in New Issue
Block a user