refactor: update OKR form and edit page to use new CreateKeyResultInput type for improved type safety and clarity
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 6m54s
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 6m54s
This commit is contained in:
@@ -5,7 +5,7 @@ import { useRouter, useParams } from 'next/navigation';
|
||||
import Link from 'next/link';
|
||||
import { OKRForm } from '@/components/okrs';
|
||||
import { Card } from '@/components/ui';
|
||||
import type { CreateOKRInput, TeamMember, OKR, KeyResult } from '@/lib/types';
|
||||
import type { CreateOKRInput, CreateKeyResultInput, TeamMember, OKR, KeyResult } from '@/lib/types';
|
||||
|
||||
type OKRWithTeamMember = OKR & {
|
||||
teamMember: {
|
||||
@@ -66,7 +66,7 @@ export default function EditOKRPage() {
|
||||
startDate: Date | string;
|
||||
endDate: Date | string;
|
||||
keyResultsUpdates?: {
|
||||
create?: Array<{ title: string; targetValue: number; unit: string; order: number }>;
|
||||
create?: CreateKeyResultInput[];
|
||||
update?: KeyResultUpdate[];
|
||||
delete?: string[]
|
||||
}
|
||||
@@ -87,7 +87,7 @@ export default function EditOKRPage() {
|
||||
startDate: string;
|
||||
endDate: string;
|
||||
keyResultsUpdates?: {
|
||||
create?: Array<{ title: string; targetValue: number; unit: string; order: number }>;
|
||||
create?: CreateKeyResultInput[];
|
||||
update?: KeyResultUpdate[];
|
||||
delete?: string[];
|
||||
};
|
||||
|
||||
@@ -69,10 +69,7 @@ type KeyResultUpdate = {
|
||||
order?: number;
|
||||
};
|
||||
|
||||
interface OKRFormProps {
|
||||
teamMembers: TeamMember[];
|
||||
onSubmit: (
|
||||
data:
|
||||
type OKRFormSubmitData =
|
||||
| (CreateOKRInput & {
|
||||
startDate: Date | string;
|
||||
endDate: Date | string;
|
||||
@@ -82,8 +79,11 @@ interface OKRFormProps {
|
||||
delete?: string[];
|
||||
};
|
||||
})
|
||||
| CreateOKRInput
|
||||
) => Promise<void>;
|
||||
| CreateOKRInput;
|
||||
|
||||
interface OKRFormProps {
|
||||
teamMembers: TeamMember[];
|
||||
onSubmit: (data: OKRFormSubmitData) => Promise<void>;
|
||||
onCancel: () => void;
|
||||
initialData?: Partial<CreateOKRInput> & { keyResults?: KeyResult[] };
|
||||
}
|
||||
@@ -269,8 +269,8 @@ export function OKRForm({ teamMembers, onSubmit, onCancel, initialData }: OKRFor
|
||||
objective,
|
||||
description: description || undefined,
|
||||
period: finalPeriod,
|
||||
startDate: startDateObj.toISOString(),
|
||||
endDate: endDateObj.toISOString(),
|
||||
startDate: startDateObj.toISOString() as Date | string,
|
||||
endDate: endDateObj.toISOString() as Date | string,
|
||||
keyResults: [], // Not used in edit mode
|
||||
keyResultsUpdates: {
|
||||
create:
|
||||
@@ -285,7 +285,7 @@ export function OKRForm({ teamMembers, onSubmit, onCancel, initialData }: OKRFor
|
||||
update: allUpdates.length > 0 ? allUpdates : undefined,
|
||||
delete: deletedIds.length > 0 ? deletedIds : undefined,
|
||||
},
|
||||
});
|
||||
} as unknown as OKRFormSubmitData);
|
||||
} else {
|
||||
// In create mode, just send Key Results normally
|
||||
await onSubmit({
|
||||
|
||||
@@ -62,8 +62,8 @@ interface QuadrantHelpProps {
|
||||
category: SwotCategory;
|
||||
}
|
||||
|
||||
export function QuadrantHelp({ category: _category }: QuadrantHelpProps) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
export function QuadrantHelp({ category: _category }: QuadrantHelpProps) {
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user