From 225b3e842e0a77b5458eb350b7dcad8353dd0714 Mon Sep 17 00:00:00 2001 From: Mahen Date: Sun, 22 Mar 2026 17:38:57 +0700 Subject: [PATCH] style: fix URL input visibility handling --- src/components/dashboards/AnalysisClient.tsx | 147 ++++++------------- src/hooks/useAnalyzeText.ts | 22 ++- src/utils/const.ts | 1 + 3 files changed, 68 insertions(+), 102 deletions(-) diff --git a/src/components/dashboards/AnalysisClient.tsx b/src/components/dashboards/AnalysisClient.tsx index f90d381..d419e33 100644 --- a/src/components/dashboards/AnalysisClient.tsx +++ b/src/components/dashboards/AnalysisClient.tsx @@ -9,19 +9,50 @@ import ResultSection from "./ResultSection"; export default function AnalysisClient() { const { errors, - isValid, loading, result, - showField, resultRef, progress, + visibleFields, + urlDatas, register, handleSubmit, onSubmit, - setShowField, handleCancel, + setVisibleFields, } = useAnalyseText(); + const urlInput = () => { + return urlDatas.slice(0, visibleFields).map((item, index) => ( +
+ +
+
+ +
+ +
+
+ )); + }; + return (
- {/*
- - ( - - )} - /> - {errors.profession && ( -

- {errors.profession.message} -

- )} -
*/} -
+
-
-
- - - {errors.url3 && ( -

- {errors.url3.message} -

- )} -
- -
- {showField ? ( -
- -
-
- -
- -
- {errors.url4 && ( -

- {errors.url4.message} -

- )} -
- ) : ( - - )} -
+
+ {urlInput()} + {visibleFields < 2 && ( + + )}
diff --git a/src/hooks/useAnalyzeText.ts b/src/hooks/useAnalyzeText.ts index 932c528..1c8de6e 100644 --- a/src/hooks/useAnalyzeText.ts +++ b/src/hooks/useAnalyzeText.ts @@ -17,10 +17,10 @@ export const useAnalyseText = () => { const { data: session } = useSession(); const [loading, setLoading] = useState(false); const [result, setResult] = useState(null); - const [showField, setShowField] = useState(false); const resultRef = useRef(null); const [progress, setProgress] = useState({ status: "", percent: 0 }); const abortControllerRef = useRef(null); + const [visibleFields, setVisibleFields] = useState(0); const { control, @@ -208,20 +208,36 @@ export const useAnalyseText = () => { } }, [loading, result]); + const urlDatas = [ + { + labels: "Tautan Produk 3", + errors: errors.url3, + title: { ...register("url3") }, + type: "url3", + }, + { + labels: "Tautan Produk 4", + errors: errors.url4, + title: { ...register("url4") }, + type: "url4", + }, + ]; + return { control, errors, isValid, loading, result, - showField, + visibleFields, resultRef, progress, + urlDatas, register, handleSubmit, setValue, onSubmit, - setShowField, + setVisibleFields, handleCancel, }; }; diff --git a/src/utils/const.ts b/src/utils/const.ts index 58bbf29..369a5ef 100644 --- a/src/utils/const.ts +++ b/src/utils/const.ts @@ -8,6 +8,7 @@ import { import { SiAcer, SiAsus, SiLenovo, SiLinux, SiMacos } from "react-icons/si"; import { FaWindows } from "react-icons/fa"; import { Sentiment } from "@prisma/client"; +import { useAnalyseText } from "../hooks/useAnalyzeText"; export const MODEL_OPTIONS = [ {