Skip to content
Snippets Groups Projects
Commit 8b5f2cb6 authored by bmate711's avatar bmate711
Browse files

Merge branch 'update-types' into 'dev'

update types

See merge request !9
parents 175ede25 8164129a
No related branches found
No related tags found
2 merge requests!19fix type imports,!9update types
import { Profile } from '../types/types'; import { IProfile } from '../types/Profile';
export type EmptyReq = undefined; export type EmptyReq = undefined;
...@@ -11,5 +11,5 @@ export type RegisterReq = { ...@@ -11,5 +11,5 @@ export type RegisterReq = {
password: string; password: string;
}; };
export type UserResponse = { export type UserResponse = {
user: Profile; user: IProfile;
}; };
import React, { createContext, useState } from 'react'; import React, { createContext, useState } from 'react';
import { Profile, Role } from '../types/types'; import { IProfile, Role } from '../types/Profile';
interface ContextProps { interface ContextProps {
profile: Profile; profile: IProfile;
setProfile: (profile: Profile) => void; setProfile: (profile: IProfile) => void;
} }
// Context // Context
const initialState: Profile = { const initialState: IProfile = {
external_id: 'abcd', externalId: 'abcd',
studentCardNumber: '1234', studentCardNumber: '1234',
roomNumber: '104', roomNumber: 104,
picture: 'alma.jpg',
role: Role.User, role: Role.User,
email: 'alma@gmail.com', email: 'alma@gmail.com',
name: 'Nagy Gizike', name: 'Nagy Gizike',
warnings: [], warnings: [],
notices: [],
}; };
export const userContext = createContext({} as ContextProps); export const userContext = createContext({} as ContextProps);
const { Provider } = userContext; const { Provider } = userContext;
export const UserStateProvider: React.FC = ({ children }) => { export const UserStateProvider: React.FC = ({ children }) => {
const [profile, setProfile] = useState<Profile>(initialState); const [profile, setProfile] = useState<IProfile>(initialState);
return <Provider value={{ profile, setProfile }}>{children}</Provider>; return <Provider value={{ profile, setProfile }}>{children}</Provider>;
}; };
......
export interface INews {
title: string;
text: string;
publishedAt: Date;
publishedBy: string;
updatedBy?: string;
}
export enum Role {
Admin = 'ADMIN',
User = 'USER',
}
export interface INotice {
_id: string;
text: string;
redirect?: string;
isSeen: boolean;
}
export interface IWarning {
_id: string;
text: string;
date: Date;
givenBy: string;
}
export interface IProfile {
externalId: string;
studentCardNumber?: string;
roomNumber?: Number;
newPicture?: string;
acceptedPicture?: string;
role: Role;
email: string;
name: string;
isStaffMember?: boolean;
staffMemberText?: string;
warnings: IWarning[];
notices: INotice[];
}
export enum MemberState {
Accepted = 'ACCEPTED',
Applied = 'APPLIED',
Rejected = 'REJECTED',
}
export enum CardState {
Created = 'CREATED',
Printed = 'PRINTED',
Given = 'GIVEN',
}
export interface IMember {
user: string;
memberState: MemberState;
cardState: CardState;
cardNumber: number;
cardReceiveDate?: Date;
}
export interface ITerm {
backgroundFile?: string;
name: string;
createDate?: Date;
startDate: Date;
endDate: Date;
deadline: Date;
members: IMember[];
}
export enum Role {
Admin,
Staff,
User,
}
export interface Profile {
external_id: string;
studentCardNumber: string;
roomNumber?: string;
picture: string;
role: Role.Admin | Role.Staff | Role.User;
email?: string;
name?: string;
warnings: [Warnings] | [];
}
export interface Warnings {
text: string;
date: Date;
given_by: {
_id: string;
name: string;
};
}
export interface News {
title: string;
text: string;
publishedAt: string;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment