Skip to content

Commit

Permalink
Merge pull request #100 from dream-aim-deliver/feature-case_study_int…
Browse files Browse the repository at this point in the history
…egration

Feature case study integration
  • Loading branch information
maany authored Nov 21, 2024
2 parents 20a0502 + 81ed2e2 commit b29f2a1
Show file tree
Hide file tree
Showing 12 changed files with 307 additions and 94 deletions.
159 changes: 155 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
},
"dependencies": {
"@maany_shr/kernel-planckster-sdk-ts": "^2.0.0-alpha",
"@maany_shr/rage-ui-kit": "1.3.1",
"@maany_shr/rage-ui-kit": "2.0.0-alpha",
"@preact/signals-react": "^2.1.0",
"@tanstack/react-query": "^5.25.0",
"@tanstack/react-query-devtools": "^5.51.21",
Expand Down
6 changes: 3 additions & 3 deletions src/app/_components/chat-page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export function ChatClientPageSkeleton() {
return <ChatPage messages={[]} />;
}

export function ChatClientPage(props: { listMessagesViewModel: TListMessagesForConversationViewModel; researchContextExternalID: string; researchContextID: number; conversationID: number }) {
export function ChatClientPage(props: { listMessagesViewModel: TListMessagesForConversationViewModel; researchContextExternalID: string; researchContextID: number; conversationID: number, className?: string }) {
const [listMessagesViewModel, setListMessagesViewModel] = useState<TListMessagesForConversationViewModel>(props.listMessagesViewModel);

const emptySendMessageViewModel: TSendMessageToConversationViewModel = {
Expand Down Expand Up @@ -146,11 +146,11 @@ export function ChatClientPage(props: { listMessagesViewModel: TListMessagesForC
}, [sendMessageViewModel]);

if (listMessagesViewModel.status === "request") {
return <ChatPage messages={[]} />;
return <ChatPage className={props.className} messages={[]} />;
} else if (listMessagesViewModel.status === "error") {
throw new Error(listMessagesViewModel.message);
} else if (listMessagesViewModel.status === "success") {
return <ChatPage messages={getMessagesWithStatus()} onSendMessage={isMessageBeingSent ? undefined : handleSendMessage} />;
return <ChatPage className={props.className} messages={getMessagesWithStatus()} onSendMessage={isMessageBeingSent ? undefined : handleSendMessage} />;
}

throw new Error("Invalid state");
Expand Down
43 changes: 43 additions & 0 deletions src/app/_components/create-case-study.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
"use client";

import { CaseStudyForm, useToast } from "@maany_shr/rage-ui-kit";
import { CaseStudyParameters } from "@maany_shr/rage-ui-kit";
import { useRouter } from "next/navigation";

export const CreateCaseStudy = () => {
const availableCaseStudies = {
"climate-monitoring": "Climate Monitoring",
"sentinel-5p": "Sentinel 5P",
};

const { toast } = useToast();
const router = useRouter();

const onSubmit = (parameters: CaseStudyParameters) => {
if (!Object.keys(availableCaseStudies).includes(parameters.caseStudy)) {
toast({
variant: "error",
title: "No case study is specified",
description: "Please choose one of the available case studies.",
});
return;
}

if (Number.isNaN(parameters.jobId) || parameters.tracerId === "" || parameters.jobId < 0) {
toast({
variant: "error",
title: "Wrong parameters specified",
description: "Please make sure the job ID and tracer ID fields are not empty.",
});
return;
}

router.push(`/case-study?jobId=${parameters.jobId}&tracerId=${parameters.tracerId}&caseStudy=${parameters.caseStudy}`);
};

return (
<div className="flex grow items-center justify-center">
<CaseStudyForm caseStudies={availableCaseStudies} onSubmit={onSubmit} />
</div>
);
};
55 changes: 0 additions & 55 deletions src/app/_components/dummy-case-study-enter.tsx

This file was deleted.

3 changes: 3 additions & 0 deletions src/app/_components/layouts/page-layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ export const PageLayout = (props: { children: React.ReactNode; isAuthenticated:
<Link key="sources_link" href="/sources">
Sources
</Link>,
<Link key="case_studies_link" href="/case-study/create">
Case Study
</Link>,
<a key="docs_link" href="https://dream-aim-deliver.github.io/planckster-docs/" target="_blank">
Documentation
</a>,
Expand Down
Loading

0 comments on commit b29f2a1

Please sign in to comment.