add date.ts for global formatting, remove redundant pill completed : in progress from viewAssignmentDetails.tsx

This commit is contained in:
Fhj0607
2026-04-29 11:37:27 +02:00
parent 473eb0efbb
commit 67c625f42c
3 changed files with 35 additions and 47 deletions

View File

@@ -1,3 +1,4 @@
import { formatDateTime } from '@/lib/date';
import { CheckAssignmentCompletion, CheckSubjectCompletion } from '@/lib/progress';
import { getSubjectColorSet, type SubjectColor } from '@/lib/subjectColors';
import { supabase } from '@/lib/supabase';
@@ -287,19 +288,7 @@ export default function ViewDetailsAssignment() {
<View className="mr-2 mb-2 rounded-full bg-app-subtle px-3 py-1">
<Text className="text-xs font-semibold text-text-secondary">
Deadline: {assignment.deadline || 'No deadline'}
</Text>
</View>
<View
className="mr-2 mb-2 rounded-full px-3 py-1"
style={{ backgroundColor: colorSet.soft }}
>
<Text
className="text-xs font-semibold"
style={{ color: colorSet.strong }}
>
{assignment.isCompleted ? 'Completed' : 'In progress'}
Deadline: {formatDateTime(assignment.deadline) || 'No deadline'}
</Text>
</View>
</View>
@@ -332,9 +321,9 @@ export default function ViewDetailsAssignment() {
</Text>
</View>
<Text className="mt-4 text-sm text-text-muted">
Last changed: {assignment.lastChanged}
</Text>
<Text className="mt-4 text-sm text-text-muted">
Last changed: {formatDateTime(assignment.lastChanged)}
</Text>
</View>
</View>

View File

@@ -1,3 +1,4 @@
import { formatDate, formatDateTime } from '@/lib/date';
import { CheckSubjectCompletion } from '@/lib/progress';
import { SUBJECT_COLORS, type SubjectColor } from '@/lib/subjectColors';
import { supabase } from '@/lib/supabase';
@@ -17,37 +18,6 @@ export type Subject = {
color: SubjectColor;
};
const formatDate = (value?: string | null) => {
if (!value) return 'No date';
const date = new Date(value);
if (Number.isNaN(date.getTime())) return value;
return date.toLocaleDateString(undefined, {
year: 'numeric',
month: 'short',
day: 'numeric',
});
};
const formatDateTime = (value?: string | null) => {
if (!value) return 'Unknown';
const date = new Date(value);
if (Number.isNaN(date.getTime())) return value;
return date.toLocaleString(undefined, {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: 'numeric',
minute: '2-digit',
});
};
export default function ViewDetailsSubject() {
const { sId } = useLocalSearchParams<{ sId: string }>();
const [subject, SetSubject] = useState<Subject | null>(null);

29
lib/date.ts Normal file
View File

@@ -0,0 +1,29 @@
export const formatDate = (value?: string | null) => {
if (!value) return 'No date';
const date = new Date(value);
if (Number.isNaN(date.getTime())) return value;
return date.toLocaleDateString(undefined, {
year: 'numeric',
month: 'short',
day: 'numeric',
});
};
export const formatDateTime = (value?: string | null) => {
if (!value) return 'Unknown';
const date = new Date(value);
if (Number.isNaN(date.getTime())) return value;
return date.toLocaleString(undefined, {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: 'numeric',
minute: '2-digit',
});
};