diff --git a/apps/applicant-tracking/src/components/ApplicantInfoPage/index.tsx b/apps/applicant-tracking/src/components/ApplicantInfoPage/index.tsx new file mode 100644 index 0000000..5c5a320 --- /dev/null +++ b/apps/applicant-tracking/src/components/ApplicantInfoPage/index.tsx @@ -0,0 +1,65 @@ +import React from "react"; + +type ApplicationStatus = + | "Pending Review" + | "Scheduling Interview" + | "Interview Scheduled" + | "Interview Complete" + | "Decision Made"; + +type Decision = "Accepted" | "Waitlisted" | "Rejected"; + +type Application = { + status: ApplicationStatus; + firstName: string; + lastName: string; + netid: string; + term: string; + interviewTime?: Date; + interviewMeetingLink?: string; + noShowCount?: number; + decision?: Decision; + decisionReason?: string; + notes?: string; +}; + +type Props = { + application: Application; +}; + +export default function ApplicantInfoPage({ application }: Props) { + return ( +
+
+ Applicant Tracking >> Applicants >> {application.firstName} {application.lastName} +
+ +

+ Applicant: ({application.firstName} {application.lastName}) +

+ +
+ +
+
+ + +
+
+
+ ); +} + +function LabeledField({ label, value }: { label: string; value: string }) { + return ( +
+ + +
+ ); +} \ No newline at end of file diff --git a/apps/applicant-tracking/src/components/SearchBar/index.tsx b/apps/applicant-tracking/src/components/SearchBar/index.tsx new file mode 100644 index 0000000..bc44469 --- /dev/null +++ b/apps/applicant-tracking/src/components/SearchBar/index.tsx @@ -0,0 +1,34 @@ +import React from 'react'; + +const SearchBar = ({ value, onChange }) => { + return ( +
+ +
+ ); +}; + +const styles = { + container: { + display: 'flex', + alignItems: 'center', + padding: '0.5rem', + }, + input: { + width: '250px', + height: '36px', + padding: '0 12px', + border: '1px solid #ccc', + borderRadius: '6px', + fontSize: '14px', + outline: 'none', + }, +}; + +export default SearchBar; \ No newline at end of file