|
|
@@ -126,42 +126,20 @@ struct AIJobSearchView: View {
|
|
|
|
|
|
Spacer()
|
|
|
|
|
|
- HStack(spacing: AppSpacing.sm) {
|
|
|
- Menu {
|
|
|
- ForEach(JobSortOption.allCases) { option in
|
|
|
- Button(option.displayName) {
|
|
|
- viewModel.sortOption = option
|
|
|
- }
|
|
|
- }
|
|
|
- } label: {
|
|
|
- HStack(spacing: 4) {
|
|
|
- Text("Sort by:")
|
|
|
- .foregroundStyle(AppColors.textSecondary)
|
|
|
- Text(viewModel.sortOption.displayName)
|
|
|
- .foregroundStyle(AppColors.textPrimary)
|
|
|
- Image(systemName: "chevron.down")
|
|
|
- .font(.system(size: 9, weight: .semibold))
|
|
|
- .foregroundStyle(AppColors.textTertiary)
|
|
|
- }
|
|
|
- .font(AppTypography.meta)
|
|
|
- }
|
|
|
- .menuStyle(.borderlessButton)
|
|
|
-
|
|
|
- HStack(spacing: 2) {
|
|
|
- ForEach(ResultsLayout.allCases) { layout in
|
|
|
- Button {
|
|
|
- viewModel.layout = layout
|
|
|
- } label: {
|
|
|
- Image(systemName: layout.iconName)
|
|
|
- .font(.system(size: 12, weight: .medium))
|
|
|
- .foregroundStyle(viewModel.layout == layout ? AppColors.brand : AppColors.textTertiary)
|
|
|
- .frame(width: 28, height: 28)
|
|
|
- .background(viewModel.layout == layout ? AppColors.brandSoft : Color.clear)
|
|
|
- .clipShape(RoundedRectangle(cornerRadius: 6, style: .continuous))
|
|
|
- }
|
|
|
- .buttonStyle(.plain)
|
|
|
- .help(layout == .list ? "List view" : "Grid view")
|
|
|
+ HStack(spacing: 2) {
|
|
|
+ ForEach(ResultsLayout.allCases) { layout in
|
|
|
+ Button {
|
|
|
+ viewModel.layout = layout
|
|
|
+ } label: {
|
|
|
+ Image(systemName: layout.iconName)
|
|
|
+ .font(.system(size: 12, weight: .medium))
|
|
|
+ .foregroundStyle(viewModel.layout == layout ? AppColors.brand : AppColors.textTertiary)
|
|
|
+ .frame(width: 28, height: 28)
|
|
|
+ .background(viewModel.layout == layout ? AppColors.brandSoft : Color.clear)
|
|
|
+ .clipShape(RoundedRectangle(cornerRadius: 6, style: .continuous))
|
|
|
}
|
|
|
+ .buttonStyle(.plain)
|
|
|
+ .help(layout == .list ? "List view" : "Grid view")
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -202,7 +180,8 @@ struct AIJobSearchView: View {
|
|
|
JobRowView(
|
|
|
listing: listing,
|
|
|
isSaved: viewModel.isSaved(listing),
|
|
|
- onToggleSave: { viewModel.toggleSave(listing) }
|
|
|
+ onToggleSave: { viewModel.toggleSave(listing) },
|
|
|
+ showsPostedDate: false
|
|
|
)
|
|
|
.contextMenu {
|
|
|
Button("Open on Indeed") {
|
|
|
@@ -226,7 +205,8 @@ struct AIJobSearchView: View {
|
|
|
JobGridCardView(
|
|
|
listing: listing,
|
|
|
isSaved: viewModel.isSaved(listing),
|
|
|
- onToggleSave: { viewModel.toggleSave(listing) }
|
|
|
+ onToggleSave: { viewModel.toggleSave(listing) },
|
|
|
+ showsPostedDate: false
|
|
|
)
|
|
|
.contextMenu {
|
|
|
Button("Open on Indeed") {
|