diff --git a/package-lock.json b/package-lock.json index f8c91b75..13d6c3d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6927,9 +6927,9 @@ } }, "node_modules/vite": { - "version": "6.3.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz", - "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", "dependencies": { diff --git a/src/individuals/pages/Saved.tsx b/src/individuals/pages/Saved.tsx index 4a5ecb69..31014404 100644 --- a/src/individuals/pages/Saved.tsx +++ b/src/individuals/pages/Saved.tsx @@ -123,4 +123,4 @@ export default function SavedPage() { )} ); -}; +}; \ No newline at end of file diff --git a/src/opportunities/components/FiltersField.tsx b/src/opportunities/components/FiltersField.tsx index cf049855..458d3e4f 100644 --- a/src/opportunities/components/FiltersField.tsx +++ b/src/opportunities/components/FiltersField.tsx @@ -13,42 +13,57 @@ interface FiltersFieldProps { setPopUpMenu: () => void; } -export default function FiltersField({ resetFilters, deleteFilter, filters, setPopUpMenu }: FiltersFieldProps) { +export default function FiltersField({ + resetFilters, + deleteFilter, + filters, + setPopUpMenu, +}: FiltersFieldProps) { return ( -
-
+
+
+
+ {/* Make sure SearchBar forwards className to the actual */} - + Change Filters - {/* Fix rendering with new filters = [ [],[],[] ]*/} + {/* Filter “chips” */} - {filters.map((filter) => { - return ( - } - key={filter} - special={false} - > - {filter} - - ) - })} + {filters.map((filter) => ( + } + special={false} + + > + {filter} + + ))}
- + Reset
-
+ +
); -}; +} + diff --git a/src/opportunities/components/OpportunitiesDetails.tsx b/src/opportunities/components/OpportunitiesDetails.tsx index d4e41f36..040a9bb8 100644 --- a/src/opportunities/components/OpportunitiesDetails.tsx +++ b/src/opportunities/components/OpportunitiesDetails.tsx @@ -8,46 +8,66 @@ interface OpportunitiesListProps { export default function OpportunitiesList({ opportunities }: OpportunitiesListProps) { return ( -
+
- - {/* Column Headers */} - - - - - - - - - - + + + + + + + + + + + - - {/* Info about the opportunities */} + + {opportunities.length > 0 ? ( opportunities.map((opportunity) => ( - - - - - - - - + + + + + + + - - @@ -55,7 +75,10 @@ export default function OpportunitiesList({ opportunities }: OpportunitiesListPr )) ) : ( - @@ -65,4 +88,4 @@ export default function OpportunitiesList({ opportunities }: OpportunitiesListPr ); -}; \ No newline at end of file +} diff --git a/src/opportunities/pages/Opportunities.tsx b/src/opportunities/pages/Opportunities.tsx index f862ec3e..869eb25d 100644 --- a/src/opportunities/pages/Opportunities.tsx +++ b/src/opportunities/pages/Opportunities.tsx @@ -8,43 +8,47 @@ interface PageNavigationType { } const Opportunities: React.FC = () => { - // navigation bar const [pages, switchPage] = usePageNavigation(["Search", "Saved"], "Search") as [ PageNavigationType, (page: string) => void ]; - const activeLink = "text-black py-3 border-b-2 border-black text-lg"; - const normalLink = "text-gray-600 py-3 text-lg border-black hover:border-b-2 hover:text-black"; + // Tailwind classes with dark variants + const activeLink = + "py-3 text-lg font-semibold border-b-2 " + + "text-black dark:text-gray-100 " + + "border-black dark:border-gray-100"; + + const normalLink = + "py-3 text-lg font-semibold border-b-2 border-transparent " + + "text-gray-600 dark:text-gray-300 " + + "hover:text-black dark:hover:text-white " + + "hover:border-black dark:hover:border-gray-100"; - // displaying opportunities list component return ( -
+
-
-

Opportunities

- -
diff --git a/src/staff/pages/CreatePost.tsx b/src/staff/pages/CreatePost.tsx index 0fad0bc5..c85d977b 100644 --- a/src/staff/pages/CreatePost.tsx +++ b/src/staff/pages/CreatePost.tsx @@ -12,13 +12,26 @@ export default function CreatePost({ edit }: CreatePostProps) { if (!auth.isAuthenticated) { window.location.href = "/login"; + return null; } return ( -
- -

{edit === true ? "Edit Research Opportunity" : "Create Research Opportunity"}

- -
+
+ + +
+

+ {edit ? "Edit Research Opportunity" : "Create Research Opportunity"} +

+ + {/* subtle card so fields pop in dark mode */} +
+ +
+
+
); -}; +}
PositionDescriptionLocationPayCreditsLab ManagersTermViewSave
PositionDescriptionLocationPayCreditsLab ManagersTermViewSave
{opportunity.name}{opportunity.description}{opportunity.location}{opportunity.pay ? `$${opportunity.pay}/hr` : ""}{opportunity.credits}{opportunity.lab_managers} +
+ {opportunity.name} + + {opportunity.description} + + {opportunity.location} + + {opportunity.pay ? `$${opportunity.pay}/hr` : ""} + + {opportunity.credits} + + {opportunity.lab_managers} + {opportunity.semester} {opportunity.year} - - - + + - +
+ No results found.