From fb4d2f2366c81a17cb1931a887c0f46b4fa58ed5 Mon Sep 17 00:00:00 2001
From: ali asaria <aliasaria@users.noreply.github.com>
Date: Fri, 28 Jun 2024 12:47:40 -0400
Subject: [PATCH] render an introduction to a plugin

---
 .../Experiment/Train/TrainingModalLoRA.tsx    | 44 +++++++++++++++----
 1 file changed, 36 insertions(+), 8 deletions(-)

diff --git a/src/renderer/components/Experiment/Train/TrainingModalLoRA.tsx b/src/renderer/components/Experiment/Train/TrainingModalLoRA.tsx
index 8276e5d2..52c87074 100644
--- a/src/renderer/components/Experiment/Train/TrainingModalLoRA.tsx
+++ b/src/renderer/components/Experiment/Train/TrainingModalLoRA.tsx
@@ -2,7 +2,8 @@ import { useState, FormEvent, useEffect } from 'react';
 import useSWR from 'swr';
 
 import * as chatAPI from 'renderer/lib/transformerlab-api-sdk';
-
+import Markdown from 'react-markdown';
+import remarkGfm from 'remark-gfm';
 import {
   Button,
   FormControl,
@@ -32,9 +33,29 @@ const DefaultLoraConfig = {
 };
 
 import { generateFriendlyName } from 'renderer/lib/utils';
-
 const fetcher = (url) => fetch(url).then((res) => res.json());
 
+function PluginIntroduction({ experimentInfo, pluginId }) {
+  const { data, error, isLoading } = useSWR(
+    chatAPI.Endpoints.Experiment.ScriptGetFile(
+      experimentInfo?.id,
+      pluginId,
+      'info.md'
+    ),
+    fetcher
+  );
+
+  return (
+    <>
+      <Markdown remarkPlugins={[remarkGfm]} className="editableSheetContent">
+        {data && data != 'FILE NOT FOUND'
+          ? data
+          : 'No description for this plugin is availabe.'}
+      </Markdown>
+    </>
+  );
+}
+
 export default function TrainingModalLoRA({
   open,
   onClose,
@@ -258,15 +279,22 @@ export default function TrainingModalLoRA({
             sx={{ borderRadius: 'lg', display: 'flex', overflow: 'hidden' }}
           >
             <TabList>
-              <Tab>1. Name</Tab>
-              <Tab>2. Data</Tab>
-              <Tab>3. Plugin Config</Tab>
+              <Tab>Introduction</Tab>
+              <Tab>Name</Tab>
+              <Tab>Data</Tab>
+              <Tab>Plugin Config</Tab>
             </TabList>
-            <TabPanel value={0} sx={{ p: 2, overflow: 'auto' }} keepMounted>
+            <TabPanel value={0} sx={{ p: 2, overflow: 'auto' }}>
+              <PluginIntroduction
+                experimentInfo={experimentInfo}
+                pluginId={pluginId}
+              />
+            </TabPanel>
+            <TabPanel value={1} sx={{ p: 2, overflow: 'auto' }} keepMounted>
               <TrainingModalFirstTab />
             </TabPanel>
 
-            <TabPanel value={1} sx={{ p: 2, overflow: 'auto' }} keepMounted>
+            <TabPanel value={2} sx={{ p: 2, overflow: 'auto' }} keepMounted>
               <TrainingModalDataTab
                 datasetsIsLoading={datasetsIsLoading}
                 datasets={datasets}
@@ -280,7 +308,7 @@ export default function TrainingModalLoRA({
                 pluginId={pluginId}
               />
             </TabPanel>
-            <TabPanel value={2} sx={{ p: 2, overflow: 'auto' }} keepMounted>
+            <TabPanel value={3} sx={{ p: 2, overflow: 'auto' }} keepMounted>
               <DynamicPluginForm
                 experimentInfo={experimentInfo}
                 plugin={pluginId}
-- 
GitLab