From 1cc49962d5d2e4e80c32bd0f0e627c57ccdcf88a Mon Sep 17 00:00:00 2001 From: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com> Date: Tue, 4 Mar 2025 09:51:12 -0700 Subject: [PATCH] fix: Delete old logo and old dashboard (#6884) deleted old logo and dashboard, and moved code --- .../core/appHeaderComponent/index.tsx | 9 +- .../src/customization/feature-flags.ts | 2 - .../IOModal/components/chatView/chat-view.tsx | 17 +- .../chatMessage/components/chat-logo-icon.tsx | 17 +- .../src/pages/AdminPage/LoginPage/index.tsx | 10 +- .../src/pages/DeleteAccountPage/index.tsx | 13 +- src/frontend/src/pages/LoginPage/index.tsx | 13 +- .../components/inputSearchComponent/index.tsx | 4 +- .../components/collectionCard/index.tsx | 39 --- .../componentsComponent/index.tsx | 281 ------------------ .../oldComponents/emptyComponent/index.tsx | 35 --- .../oldComponents/headerComponent/index.tsx | 126 -------- .../oldComponents/modalsComponent/index.tsx | 41 --- .../headerTabsSearchComponent/index.tsx | 68 ----- .../components/tabsComponent/index.tsx | 64 ---- .../myCollectionComponent/index.tsx | 105 ------- .../MainPage/oldPages/mainPage/index.tsx | 131 -------- .../pages/MainPage/pages/emptyPage/index.tsx | 7 +- .../pages/MainPage/pages/homePage/index.tsx | 2 +- .../src/pages/MainPage/pages/index.tsx | 2 +- src/frontend/src/pages/SignUpPage/index.tsx | 13 +- src/frontend/src/pages/StorePage/index.tsx | 2 +- src/frontend/src/routes.tsx | 68 +---- 23 files changed, 37 insertions(+), 1032 deletions(-) rename src/frontend/src/pages/MainPage/{oldComponents/myCollectionComponent => }/components/inputSearchComponent/index.tsx (91%) delete mode 100644 src/frontend/src/pages/MainPage/oldComponents/componentsComponent/components/collectionCard/index.tsx delete mode 100644 src/frontend/src/pages/MainPage/oldComponents/componentsComponent/index.tsx delete mode 100644 src/frontend/src/pages/MainPage/oldComponents/emptyComponent/index.tsx delete mode 100644 src/frontend/src/pages/MainPage/oldComponents/headerComponent/index.tsx delete mode 100644 src/frontend/src/pages/MainPage/oldComponents/modalsComponent/index.tsx delete mode 100644 src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/headerTabsSearchComponent/index.tsx delete mode 100644 src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/tabsComponent/index.tsx delete mode 100644 src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/index.tsx delete mode 100644 src/frontend/src/pages/MainPage/oldPages/mainPage/index.tsx diff --git a/src/frontend/src/components/core/appHeaderComponent/index.tsx b/src/frontend/src/components/core/appHeaderComponent/index.tsx index cb95ff940..f3322bee5 100644 --- a/src/frontend/src/components/core/appHeaderComponent/index.tsx +++ b/src/frontend/src/components/core/appHeaderComponent/index.tsx @@ -7,10 +7,7 @@ import { Button } from "@/components/ui/button"; import { Separator } from "@/components/ui/separator"; import { CustomOrgSelector } from "@/customization/components/custom-org-selector"; import { CustomProductSelector } from "@/customization/components/custom-product-selector"; -import { - ENABLE_DATASTAX_LANGFLOW, - ENABLE_NEW_LOGO, -} from "@/customization/feature-flags"; +import { ENABLE_DATASTAX_LANGFLOW } from "@/customization/feature-flags"; import { useCustomNavigate } from "@/customization/hooks/use-custom-navigate"; import useTheme from "@/customization/hooks/use-custom-theme"; import { useResetDismissUpdateAll } from "@/hooks/use-reset-dismiss-update-all"; @@ -67,10 +64,8 @@ export default function AppHeader(): JSX.Element { > {ENABLE_DATASTAX_LANGFLOW ? ( - ) : ENABLE_NEW_LOGO ? ( - ) : ( - ⛓️ + )} {ENABLE_DATASTAX_LANGFLOW && ( diff --git a/src/frontend/src/customization/feature-flags.ts b/src/frontend/src/customization/feature-flags.ts index d2665549b..e54902a85 100644 --- a/src/frontend/src/customization/feature-flags.ts +++ b/src/frontend/src/customization/feature-flags.ts @@ -7,6 +7,4 @@ export const ENABLE_BRANDING = true; export const ENABLE_MVPS = false; export const ENABLE_CUSTOM_PARAM = false; export const ENABLE_INTEGRATIONS = false; -export const ENABLE_NEW_LOGO = true; export const ENABLE_DATASTAX_LANGFLOW = false; -export const ENABLE_HOMEPAGE = true; diff --git a/src/frontend/src/modals/IOModal/components/chatView/chat-view.tsx b/src/frontend/src/modals/IOModal/components/chatView/chat-view.tsx index 34245259a..4ee3b3b1f 100644 --- a/src/frontend/src/modals/IOModal/components/chatView/chat-view.tsx +++ b/src/frontend/src/modals/IOModal/components/chatView/chat-view.tsx @@ -1,7 +1,5 @@ import LangflowLogo from "@/assets/LangflowLogo.svg?react"; -import ChainLogo from "@/assets/logo.svg?react"; import { TextEffectPerChar } from "@/components/ui/textAnimation"; -import { ENABLE_NEW_LOGO } from "@/customization/feature-flags"; import { track } from "@/customization/utils/analytics"; import { useMessagesStore } from "@/stores/messagesStore"; import { useUtilityStore } from "@/stores/utilityStore"; @@ -179,17 +177,10 @@ export default function ChatView({ ) : (
- {ENABLE_NEW_LOGO ? ( - - ) : ( - - )} +

New chat diff --git a/src/frontend/src/modals/IOModal/components/chatView/chatMessage/components/chat-logo-icon.tsx b/src/frontend/src/modals/IOModal/components/chatView/chatMessage/components/chat-logo-icon.tsx index 19c264d85..017ea072b 100644 --- a/src/frontend/src/modals/IOModal/components/chatView/chatMessage/components/chat-logo-icon.tsx +++ b/src/frontend/src/modals/IOModal/components/chatView/chatMessage/components/chat-logo-icon.tsx @@ -1,22 +1,13 @@ import LangflowLogo from "@/assets/LangflowLogo.svg?react"; -import ChainLogo from "@/assets/logo.svg?react"; -import { ENABLE_NEW_LOGO } from "@/customization/feature-flags"; export default function LogoIcon() { return (
- {ENABLE_NEW_LOGO ? ( - - ) : ( - - )} +
); diff --git a/src/frontend/src/pages/AdminPage/LoginPage/index.tsx b/src/frontend/src/pages/AdminPage/LoginPage/index.tsx index 7fba6f15e..4e839377e 100644 --- a/src/frontend/src/pages/AdminPage/LoginPage/index.tsx +++ b/src/frontend/src/pages/AdminPage/LoginPage/index.tsx @@ -1,6 +1,5 @@ import LangflowLogo from "@/assets/LangflowLogo.svg?react"; import { useLoginUser } from "@/controllers/API/queries/auth"; -import { ENABLE_NEW_LOGO } from "@/customization/feature-flags"; import { useContext, useState } from "react"; import { Button } from "../../../components/ui/button"; import { Input } from "../../../components/ui/input"; @@ -51,14 +50,7 @@ export default function LoginAdminPage() { return (
- {ENABLE_NEW_LOGO ? ( - - ) : ( - ⛓️ - )} + Admin { diff --git a/src/frontend/src/pages/DeleteAccountPage/index.tsx b/src/frontend/src/pages/DeleteAccountPage/index.tsx index 56edc5949..cbe06ce15 100644 --- a/src/frontend/src/pages/DeleteAccountPage/index.tsx +++ b/src/frontend/src/pages/DeleteAccountPage/index.tsx @@ -1,5 +1,4 @@ import LangflowLogo from "@/assets/LangflowLogo.svg?react"; -import { ENABLE_NEW_LOGO } from "@/customization/feature-flags"; import { useState } from "react"; import { Button } from "../../components/ui/button"; import { Input } from "../../components/ui/input"; @@ -19,14 +18,10 @@ export default function DeleteAccountPage() { return (
- {ENABLE_NEW_LOGO ? ( - - ) : ( - ⛓️ - )} + Delete your account diff --git a/src/frontend/src/pages/LoginPage/index.tsx b/src/frontend/src/pages/LoginPage/index.tsx index ba4c3592c..342e33e94 100644 --- a/src/frontend/src/pages/LoginPage/index.tsx +++ b/src/frontend/src/pages/LoginPage/index.tsx @@ -1,7 +1,6 @@ import LangflowLogo from "@/assets/LangflowLogo.svg?react"; import { useLoginUser } from "@/controllers/API/queries/auth"; import { CustomLink } from "@/customization/components/custom-link"; -import { ENABLE_NEW_LOGO } from "@/customization/feature-flags"; import * as Form from "@radix-ui/react-form"; import { useContext, useState } from "react"; import InputComponent from "../../components/core/parameterRenderComponent/components/inputComponent"; @@ -67,14 +66,10 @@ export default function LoginPage(): JSX.Element { >
- {ENABLE_NEW_LOGO ? ( - - ) : ( - ⛓️ - )} + Sign in to Langflow diff --git a/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/inputSearchComponent/index.tsx b/src/frontend/src/pages/MainPage/components/inputSearchComponent/index.tsx similarity index 91% rename from src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/inputSearchComponent/index.tsx rename to src/frontend/src/pages/MainPage/components/inputSearchComponent/index.tsx index 64e702ca8..ba54ee5a5 100644 --- a/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/inputSearchComponent/index.tsx +++ b/src/frontend/src/pages/MainPage/components/inputSearchComponent/index.tsx @@ -1,6 +1,6 @@ +import ForwardedIconComponent from "@/components/common/genericIconComponent"; +import { Input } from "@/components/ui/input"; import { ChangeEvent, KeyboardEvent } from "react"; -import ForwardedIconComponent from "../../../../../../components/common/genericIconComponent"; -import { Input } from "../../../../../../components/ui/input"; type InputSearchComponentProps = { loading: boolean; diff --git a/src/frontend/src/pages/MainPage/oldComponents/componentsComponent/components/collectionCard/index.tsx b/src/frontend/src/pages/MainPage/oldComponents/componentsComponent/components/collectionCard/index.tsx deleted file mode 100644 index 8168816c4..000000000 --- a/src/frontend/src/pages/MainPage/oldComponents/componentsComponent/components/collectionCard/index.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { useCustomNavigate } from "@/customization/hooks/use-custom-navigate"; -import useFlowsManagerStore from "@/stores/flowsManagerStore"; -import { useParams } from "react-router-dom"; -import CollectionCardComponent from "../../../../../../components/core/cardComponent"; -const CollectionCard = ({ item, type, isLoading, control }) => { - const navigate = useCustomNavigate(); - const isComponent = item.is_component ?? false; - const editFlowButtonTestId = `edit-flow-button-${item.id}`; - - const { folderId } = useParams(); - - const editFlowLink = `/flow/${item.id}${folderId ? `/folder/${folderId}` : ""}`; - - const setFlowToCanvas = useFlowsManagerStore( - (state) => state.setFlowToCanvas, - ); - - const handleClick = async () => { - if (!isComponent) { - await setFlowToCanvas(item); - navigate(editFlowLink); - } - }; - - return ( - - ); -}; - -export default CollectionCard; diff --git a/src/frontend/src/pages/MainPage/oldComponents/componentsComponent/index.tsx b/src/frontend/src/pages/MainPage/oldComponents/componentsComponent/index.tsx deleted file mode 100644 index 686c71d18..000000000 --- a/src/frontend/src/pages/MainPage/oldComponents/componentsComponent/index.tsx +++ /dev/null @@ -1,281 +0,0 @@ -import PaginatorComponent from "@/components/common/paginatorComponent"; -import { PAGINATION_PAGE, PAGINATION_SIZE } from "@/constants/constants"; -import { usePostDownloadMultipleFlows } from "@/controllers/API/queries/flows"; -import TemplatesModal from "@/modals/templatesModal"; -import { Pagination } from "@/types/utils/types"; -import { useEffect, useMemo, useState } from "react"; -import { FormProvider, useForm, useWatch } from "react-hook-form"; -import { useLocation, useParams } from "react-router-dom"; -import { SkeletonCardComponent } from "../../../../components/common/skeletonCardComponent"; -import CardsWrapComponent from "../../../../components/core/cardsWrapComponent"; -import DeleteConfirmationModal from "../../../../modals/deleteConfirmationModal"; -import useAlertStore from "../../../../stores/alertStore"; -import useFlowsManagerStore from "../../../../stores/flowsManagerStore"; -import { useFolderStore } from "../../../../stores/foldersStore"; -import { FlowType } from "../../../../types/flow"; -import useFileDrop from "../../hooks/use-on-file-drop"; -import { getNameByType } from "../../utils/get-name-by-type"; - -import useDescriptionModal from "../../hooks/use-description-modal"; -import useFilteredFlows from "../../hooks/use-filtered-flows"; -import useSelectAll from "../../hooks/use-handle-select-all"; -import useSelectOptionsChange from "../../hooks/use-select-options-change"; -import useSelectedFlows from "../../hooks/use-selected-flows"; -import EmptyComponent from "../emptyComponent"; -import HeaderComponent from "../headerComponent"; -import CollectionCard from "./components/collectionCard"; - -export default function ComponentsComponent({ - type = "all", - currentFolder, - pagination, - isLoading, - deleteFlow, - onPaginate, -}: { - type?: string; - currentFolder?: FlowType[]; - isLoading: boolean; - pagination: Pagination; - deleteFlow: ({ id }: { id: string[] }) => Promise; - onPaginate: (pageIndex: number, pageSize: number) => void; -}) { - const { folderId } = useParams(); - - const [openModal, setOpenModal] = useState(false); - - const setSuccessData = useAlertStore((state) => state.setSuccessData); - const setErrorData = useAlertStore((state) => state.setErrorData); - const [openDelete, setOpenDelete] = useState(false); - const searchFlowsComponents = useFlowsManagerStore( - (state) => state.searchFlowsComponents, - ); - - const setSelectedFlowsComponentsCards = useFlowsManagerStore( - (state) => state.setSelectedFlowsComponentsCards, - ); - - const selectedFlowsComponentsCards = useFlowsManagerStore( - (state) => state.selectedFlowsComponentsCards, - ); - const myCollectionId = useFolderStore((state) => state.myCollectionId); - - const flowsFromFolder = currentFolder ?? []; - - const [filteredFlows, setFilteredFlows] = - useState(flowsFromFolder); - - const handleFileDrop = useFileDrop(type); - const location = useLocation(); - - const name = getNameByType(type); - - const [shouldSelectAll, setShouldSelectAll] = useState(true); - - const cardTypes = useMemo(() => { - if (location.pathname.includes("components")) { - return "Components"; - } - if (location.pathname.includes("flows")) { - return "Flows"; - } - return "Items"; - }, [location]); - - useEffect(() => { - setSelectedFlowsComponentsCards([]); - handleSelectAll(false); - setShouldSelectAll(true); - }, [folderId, location, myCollectionId]); - - useFilteredFlows(flowsFromFolder, searchFlowsComponents, setFilteredFlows); - - const resetFilter = () => { - onPaginate(PAGINATION_PAGE, PAGINATION_SIZE); - }; - - const { getValues, control, setValue } = useForm(); - const entireFormValues = useWatch({ control }); - - const methods = useForm(); - - const { handleSelectAll } = useSelectAll( - flowsFromFolder!, - getValues, - setValue, - ); - - const handleDuplicate = () => {}; - - const { mutate: mutateDownloadMultipleFlows } = - usePostDownloadMultipleFlows(); - - const handleExport = () => { - mutateDownloadMultipleFlows( - { - flow_ids: selectedFlowsComponentsCards, - }, - { - onSuccess: (data) => { - const selectedFlow = flowsFromFolder.find( - (flow) => flow.id === selectedFlowsComponentsCards[0], - ); - - const blobType = - selectedFlowsComponentsCards.length > 1 - ? "application/zip" - : "application/json"; - - const fileNameSuffix = - selectedFlowsComponentsCards.length > 1 - ? "_langflow_flows.zip" - : `${selectedFlow!.name}.json`; - - const blob = new Blob([data], { type: blobType }); - - const link = document.createElement("a"); - link.href = window.URL.createObjectURL(blob); - - let current_time = new Date().toISOString().replace(/[:.]/g, ""); - - current_time = current_time - .replace(/-/g, "") - .replace(/T/g, "") - .replace(/Z/g, ""); - - link.download = - selectedFlowsComponentsCards.length > 1 - ? `${current_time}${fileNameSuffix}` - : `${fileNameSuffix}`; - - document.body.appendChild(link); - link.click(); - document.body.removeChild(link); - - setSuccessData({ title: `${cardTypes} exported successfully` }); - setSelectedFlowsComponentsCards([]); - handleSelectAll(false); - setShouldSelectAll(true); - }, - }, - ); - }; - - const { handleSelectOptionsChange } = useSelectOptionsChange( - selectedFlowsComponentsCards, - setErrorData, - setOpenDelete, - handleDuplicate, - handleExport, - ); - - const handleDeleteMultiple = () => { - deleteFlow({ id: selectedFlowsComponentsCards }) - .then(() => { - resetFilter(); - setSelectedFlowsComponentsCards([]); - handleSelectAll(false); - setShouldSelectAll(true); - setSuccessData({ - title: "Selected items deleted successfully", - }); - }) - .catch(() => { - setErrorData({ - title: "Error deleting items", - list: ["Please try again"], - }); - }); - }; - - useSelectedFlows(entireFormValues, setSelectedFlowsComponentsCards); - - const descriptionModal = useDescriptionModal( - selectedFlowsComponentsCards, - type, - ); - - const handleOpenModal = () => { - setOpenModal(true); - }; - - return ( - <> -
- handleSelectOptionsChange("delete")} - handleSelectAll={handleSelectAll} - handleDuplicate={() => handleSelectOptionsChange("duplicate")} - handleExport={() => handleSelectOptionsChange("export")} - disableFunctions={!(selectedFlowsComponentsCards?.length > 0)} - /> -
- - -
-
- {!isLoading && flowsFromFolder?.length === 0 ? ( - - ) : ( -
- {flowsFromFolder?.length > 0 ? ( - <> - {flowsFromFolder?.map((item) => ( - -
- - -
- ))} - - ) : ( - <> - - - - )} -
- )} -
- {!isLoading && flowsFromFolder?.length > 0 && ( -
- -
- )} -
-
- {openDelete && ( - - <> - - )} - - - ); -} diff --git a/src/frontend/src/pages/MainPage/oldComponents/emptyComponent/index.tsx b/src/frontend/src/pages/MainPage/oldComponents/emptyComponent/index.tsx deleted file mode 100644 index 6bd912202..000000000 --- a/src/frontend/src/pages/MainPage/oldComponents/emptyComponent/index.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { useIsFetching } from "@tanstack/react-query"; - -type EmptyComponentProps = { - handleOpenModal: () => void; -}; - -const EmptyComponent = ({ handleOpenModal }: EmptyComponentProps) => { - const isLoadingFolders = !!useIsFetching({ - queryKey: ["useGetFolders"], - exact: false, - }); - - return ( -
-
-
- - This folder is empty. New? - - - - - 🚀 -
-
-
- ); -}; -export default EmptyComponent; diff --git a/src/frontend/src/pages/MainPage/oldComponents/headerComponent/index.tsx b/src/frontend/src/pages/MainPage/oldComponents/headerComponent/index.tsx deleted file mode 100644 index 7bdc16f3f..000000000 --- a/src/frontend/src/pages/MainPage/oldComponents/headerComponent/index.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import IconComponent from "../../../../components/common/genericIconComponent"; -import ShadTooltip from "../../../../components/common/shadTooltipComponent"; -import { Button } from "../../../../components/ui/button"; -import { Checkbox } from "../../../../components/ui/checkbox"; -import { cn } from "../../../../utils/utils"; - -type HeaderComponentProps = { - handleSelectAll: (select) => void; - handleDelete: () => void; - handleDuplicate: () => void; - handleExport: () => void; - disableFunctions: boolean; - setShouldSelectAll: (select) => void; - shouldSelectAll: boolean; - disabled: boolean; -}; - -const HeaderComponent = ({ - handleSelectAll, - handleDelete, - handleDuplicate, - handleExport, - disableFunctions, - setShouldSelectAll, - shouldSelectAll, - disabled, -}: HeaderComponentProps) => { - const handleClick = () => { - handleSelectAll(shouldSelectAll); - setShouldSelectAll((prevState) => !prevState); - }; - - return ( - <> -
- -
-
- Select items to export - ) : ( - Export selected items - ) - } - > - - -
-
- Select items to duplicate - ) : ( - Duplicate selected items - ) - } - > - - -
-
- Select items to delete - ) : ( - Delete selected items - ) - } - > - - -
-
-
- - ); -}; -export default HeaderComponent; diff --git a/src/frontend/src/pages/MainPage/oldComponents/modalsComponent/index.tsx b/src/frontend/src/pages/MainPage/oldComponents/modalsComponent/index.tsx deleted file mode 100644 index e1203f28a..000000000 --- a/src/frontend/src/pages/MainPage/oldComponents/modalsComponent/index.tsx +++ /dev/null @@ -1,41 +0,0 @@ -// Modals.tsx -import TemplatesModal from "@/modals/templatesModal"; -import DeleteConfirmationModal from "../../../../modals/deleteConfirmationModal"; - -interface ModalsProps { - openModal: boolean; - setOpenModal: (value: boolean) => void; - openDeleteFolderModal: boolean; - setOpenDeleteFolderModal: (value: boolean) => void; - handleDeleteFolder: () => void; -} - -const ModalsComponent = ({ - openModal = false, - setOpenModal = () => {}, - openDeleteFolderModal = false, - setOpenDeleteFolderModal = () => {}, - handleDeleteFolder = () => {}, -}: ModalsProps) => ( - <> - {openModal && } - {openDeleteFolderModal && ( - { - handleDeleteFolder(); - setOpenDeleteFolderModal(false); - }} - description="folder" - note={ - "Deleting the selected folder will remove all associated flows and components." - } - > - <> - - )} - -); - -export default ModalsComponent; diff --git a/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/headerTabsSearchComponent/index.tsx b/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/headerTabsSearchComponent/index.tsx deleted file mode 100644 index fe5b7d778..000000000 --- a/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/headerTabsSearchComponent/index.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import { SEARCH_TABS } from "@/constants/constants"; -import { useCallback, useState } from "react"; -import InputSearchComponent from "../inputSearchComponent"; -import TabsSearchComponent from "../tabsComponent"; - -type HeaderTabsSearchComponentProps = { - loading: boolean; - onChangeTab: (tab: string) => void; - onSearch: (search: string) => void; - activeTab: string; -}; - -const HeaderTabsSearchComponent = ({ - loading, - onChangeTab, - onSearch, - activeTab, -}: HeaderTabsSearchComponentProps) => { - const [inputValue, setInputValue] = useState(""); - - const handleChangeTab = useCallback( - (tab: string) => { - onChangeTab(tab); - }, - [onChangeTab], - ); - - const handleSearch = useCallback(() => { - onSearch(inputValue); - }, [onSearch, inputValue]); - - const handleInputChange = useCallback( - (e: React.ChangeEvent) => { - setInputValue(e.target.value); - }, - [], - ); - - const handleKeyDown = useCallback( - (e: React.KeyboardEvent) => { - if (e.key === "Enter") { - handleSearch(); - } - }, - [handleSearch], - ); - - return ( - <> -
- - -
- - ); -}; - -export default HeaderTabsSearchComponent; diff --git a/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/tabsComponent/index.tsx b/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/tabsComponent/index.tsx deleted file mode 100644 index 6c213ba34..000000000 --- a/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/components/tabsComponent/index.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { useCustomNavigate } from "@/customization/hooks/use-custom-navigate"; -import { useCallback } from "react"; - -type TabsSearchComponentProps = { - tabsOptions: string[]; - setActiveTab: (tab: string) => void; - loading: boolean; - tabActive: string; -}; - -const TabsSearchComponent = ({ - tabsOptions, - setActiveTab, - loading, - tabActive, -}: TabsSearchComponentProps) => { - const navigate = useCustomNavigate(); - - const changeLocation = useCallback( - (tabOption: string) => { - const location = window.location.pathname; - let newLocation = ""; - switch (tabOption) { - case "Flows": - newLocation = location.replace(/.*\/(?:all|components)/, "/flows"); - break; - case "Components": - newLocation = location.replace(/.*\/(?:flows|all)/, "/components"); - break; - default: - newLocation = location.replace(/.*\/(?:flows|components)/, "/all"); - break; - } - navigate(newLocation); - setActiveTab(tabOption); - }, - [navigate, setActiveTab], - ); - - return ( - <> -
- {tabsOptions.map((tabOption, index) => ( - - ))} -
- - ); -}; - -export default TabsSearchComponent; diff --git a/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/index.tsx b/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/index.tsx deleted file mode 100644 index 1526f3d87..000000000 --- a/src/frontend/src/pages/MainPage/oldComponents/myCollectionComponent/index.tsx +++ /dev/null @@ -1,105 +0,0 @@ -import { useGetFolderQuery } from "@/controllers/API/queries/folders/use-get-folder"; -import useDeleteFlow from "@/hooks/flows/use-delete-flow"; -import { useFolderStore } from "@/stores/foldersStore"; -import { useIsFetching, useIsMutating } from "@tanstack/react-query"; -import { useCallback, useState } from "react"; -import { useLocation, useParams } from "react-router-dom"; -import ComponentsComponent from "../componentsComponent"; -import HeaderTabsSearchComponent from "./components/headerTabsSearchComponent"; - -type MyCollectionComponentProps = { - type: string; -}; - -const MyCollectionComponent = ({ type }: MyCollectionComponentProps) => { - const { folderId } = useParams(); - const location = useLocation(); - const myCollectionId = useFolderStore((state) => state.myCollectionId); - - const [pageIndex, setPageIndex] = useState(1); - const [pageSize, setPageSize] = useState(10); - const [filter, setFilter] = useState(() => { - if (location.pathname.includes("components")) return "Components"; - if (location.pathname.includes("flows")) return "Flows"; - return "All"; - }); - const [search, setSearch] = useState(""); - - const { data: folderData, isFetching } = useGetFolderQuery({ - id: folderId ?? myCollectionId!, - page: pageIndex, - size: pageSize, - is_component: filter === "Components", - is_flow: filter === "Flows", - search: search, - }); - - const data = { - flows: folderData?.flows?.items ?? [], - name: folderData?.folder?.name ?? "", - description: folderData?.folder?.description ?? "", - parent_id: folderData?.folder?.parent_id ?? "", - components: folderData?.folder?.components ?? [], - pagination: { - page: folderData?.flows?.page ?? 1, - size: folderData?.flows?.size ?? 10, - total: folderData?.flows?.total ?? 0, - pages: folderData?.flows?.pages ?? 0, - }, - }; - - const isLoadingFolders = !!useIsFetching({ - queryKey: ["useGetFolders"], - exact: false, - }); - - const { deleteFlow, isDeleting } = useDeleteFlow(); - - const isAddingFlow = !!useIsMutating({ - mutationKey: ["usePostAddFlow"], - exact: true, - }); - - const handlePageChange = useCallback( - (newPageIndex: number, newPageSize: number) => { - setPageIndex(newPageIndex); - setPageSize(newPageSize); - }, - [], - ); - - const onChangeTab = useCallback((newFilter: string) => { - setFilter(newFilter); - setPageIndex(1); - }, []); - - const onSearch = useCallback((newSearch: string) => { - setSearch(newSearch); - setPageIndex(1); - }, []); - - return ( - <> - -
- -
- - ); -}; - -export default MyCollectionComponent; diff --git a/src/frontend/src/pages/MainPage/oldPages/mainPage/index.tsx b/src/frontend/src/pages/MainPage/oldPages/mainPage/index.tsx deleted file mode 100644 index 44bc11d87..000000000 --- a/src/frontend/src/pages/MainPage/oldPages/mainPage/index.tsx +++ /dev/null @@ -1,131 +0,0 @@ -import FolderSidebarNav from "@/components/core/folderSidebarComponent"; -import { SidebarProvider } from "@/components/ui/sidebar"; -import { useDeleteFolders } from "@/controllers/API/queries/folders"; -import { useCustomNavigate } from "@/customization/hooks/use-custom-navigate"; -import { track } from "@/customization/utils/analytics"; -import useAlertStore from "@/stores/alertStore"; -import { useIsFetching, useQueryClient } from "@tanstack/react-query"; -import { useEffect, useState } from "react"; -import { Outlet, useLocation } from "react-router-dom"; -import PageLayout from "../../../../components/common/pageLayout"; -import DropdownButton from "../../../../components/core/dropdownButtonComponent"; -import { - MY_COLLECTION_DESC, - USER_PROJECTS_HEADER, -} from "../../../../constants/constants"; -import { useFolderStore } from "../../../../stores/foldersStore"; -import useDropdownOptions from "../../hooks/use-dropdown-options"; -import ModalsComponent from "../../oldComponents/modalsComponent"; - -export default function OldHomePage(): JSX.Element { - const location = useLocation(); - const pathname = location.pathname; - const [openModal, setOpenModal] = useState(false); - const [openDeleteFolderModal, setOpenDeleteFolderModal] = useState(false); - const is_component = pathname.includes("/components"); - const setFolderToEdit = useFolderStore((state) => state.setFolderToEdit); - const navigate = useCustomNavigate(); - - const setSuccessData = useAlertStore((state) => state.setSuccessData); - const setErrorData = useAlertStore((state) => state.setErrorData); - const folderToEdit = useFolderStore((state) => state.folderToEdit); - const queryClient = useQueryClient(); - - // cleanup the query cache when the component unmounts - // prevent unnecessary queries on flow update - useEffect(() => { - return () => queryClient.removeQueries({ queryKey: ["useGetFolder"] }); - }, []); - - const dropdownOptions = useDropdownOptions({ - navigate, - is_component, - }); - - const { mutate } = useDeleteFolders(); - - const handleDeleteFolder = () => { - mutate( - { - folder_id: folderToEdit?.id!, - }, - { - onSuccess: () => { - setSuccessData({ - title: "Folder deleted successfully.", - }); - navigate("/all"); - }, - onError: (err) => { - console.error(err); - setErrorData({ - title: "Error deleting folder.", - }); - }, - }, - ); - }; - - const isFetchingFolders = !!useIsFetching({ - queryKey: ["useGetFolders"], - exact: false, - }); - - const isFetchingFolder = !!useIsFetching({ - queryKey: ["useGetFolder"], - exact: false, - }); - - const isLoadingFolder = isFetchingFolders || isFetchingFolder; - - return ( - <> -
- - - - { - setOpenModal(true); - track("New Project Button Clicked"); - }} - options={dropdownOptions} - plusButton={true} - dropdownOptions={false} - isFetchingFolders={isLoadingFolder} - /> -
- } - > -
- -
- - -
- - - ); -} diff --git a/src/frontend/src/pages/MainPage/pages/emptyPage/index.tsx b/src/frontend/src/pages/MainPage/pages/emptyPage/index.tsx index cda0fe9d7..4a370b159 100644 --- a/src/frontend/src/pages/MainPage/pages/emptyPage/index.tsx +++ b/src/frontend/src/pages/MainPage/pages/emptyPage/index.tsx @@ -1,7 +1,6 @@ import LangflowLogo from "@/assets/LangflowLogo.svg?react"; import ForwardedIconComponent from "@/components/common/genericIconComponent"; import { Button } from "@/components/ui/button"; -import { ENABLE_NEW_LOGO } from "@/customization/feature-flags"; import { useFolderStore } from "@/stores/foldersStore"; type EmptyPageProps = { @@ -15,11 +14,7 @@ export const EmptyPage = ({ setOpenModal }: EmptyPageProps) => {
- {ENABLE_NEW_LOGO ? ( - - ) : ( - ⛓️ - )} +

{ diff --git a/src/frontend/src/pages/MainPage/pages/index.tsx b/src/frontend/src/pages/MainPage/pages/index.tsx index 3f145d434..6f0923424 100644 --- a/src/frontend/src/pages/MainPage/pages/index.tsx +++ b/src/frontend/src/pages/MainPage/pages/index.tsx @@ -10,8 +10,8 @@ import { useFolderStore } from "@/stores/foldersStore"; import { useQueryClient } from "@tanstack/react-query"; import { useEffect, useState } from "react"; import { Outlet } from "react-router-dom"; +import ModalsComponent from "../components/modalsComponent"; import useFileDrop from "../hooks/use-on-file-drop"; -import ModalsComponent from "../oldComponents/modalsComponent"; import EmptyPage from "./emptyPage"; export default function CollectionPage(): JSX.Element { diff --git a/src/frontend/src/pages/SignUpPage/index.tsx b/src/frontend/src/pages/SignUpPage/index.tsx index 5b82f77f1..c5fcbc748 100644 --- a/src/frontend/src/pages/SignUpPage/index.tsx +++ b/src/frontend/src/pages/SignUpPage/index.tsx @@ -2,7 +2,6 @@ import LangflowLogo from "@/assets/LangflowLogo.svg?react"; import InputComponent from "@/components/core/parameterRenderComponent/components/inputComponent"; import { useAddUser } from "@/controllers/API/queries/auth"; import { CustomLink } from "@/customization/components/custom-link"; -import { ENABLE_NEW_LOGO } from "@/customization/feature-flags"; import { useCustomNavigate } from "@/customization/hooks/use-custom-navigate"; import { track } from "@/customization/utils/analytics"; import * as Form from "@radix-ui/react-form"; @@ -91,14 +90,10 @@ export default function SignUp(): JSX.Element { >
- {ENABLE_NEW_LOGO ? ( - - ) : ( - ⛓️ - )} + Sign up for Langflow diff --git a/src/frontend/src/pages/StorePage/index.tsx b/src/frontend/src/pages/StorePage/index.tsx index d6b08917c..f9fd13dac 100644 --- a/src/frontend/src/pages/StorePage/index.tsx +++ b/src/frontend/src/pages/StorePage/index.tsx @@ -42,7 +42,7 @@ import useFlowsManagerStore from "../../stores/flowsManagerStore"; import { useStoreStore } from "../../stores/storeStore"; import { storeComponent } from "../../types/store"; import { cn } from "../../utils/utils"; -import InputSearchComponent from "../MainPage/oldComponents/myCollectionComponent/components/inputSearchComponent"; +import InputSearchComponent from "../MainPage/components/inputSearchComponent"; export default function StorePage(): JSX.Element { const hasApiKey = useStoreStore((state) => state.hasApiKey); diff --git a/src/frontend/src/routes.tsx b/src/frontend/src/routes.tsx index b56bfbebe..6e133b99a 100644 --- a/src/frontend/src/routes.tsx +++ b/src/frontend/src/routes.tsx @@ -13,18 +13,13 @@ import { StoreGuard } from "./components/authorization/storeGuard"; import ContextWrapper from "./contexts"; import { CustomNavigate } from "./customization/components/custom-navigate"; import { BASENAME } from "./customization/config-constants"; -import { - ENABLE_CUSTOM_PARAM, - ENABLE_HOMEPAGE, -} from "./customization/feature-flags"; +import { ENABLE_CUSTOM_PARAM } from "./customization/feature-flags"; import { AppAuthenticatedPage } from "./pages/AppAuthenticatedPage"; import { AppInitPage } from "./pages/AppInitPage"; import { AppWrapperPage } from "./pages/AppWrapperPage"; import { DashboardWrapperPage } from "./pages/DashboardWrapperPage"; import FlowPage from "./pages/FlowPage"; import LoginPage from "./pages/LoginPage"; -import MyCollectionComponent from "./pages/MainPage/oldComponents/myCollectionComponent"; -import OldHomePage from "./pages/MainPage/oldPages/mainPage"; import CollectionPage from "./pages/MainPage/pages"; import HomePage from "./pages/MainPage/pages/homePage"; import SettingsPage from "./pages/SettingsPage"; @@ -66,83 +61,36 @@ const router = createBrowserRouter( > }> }> - : - } - > + }> } /> - ) : ( - - ) - } + element={} > - ) : ( - - ) - } + element={} /> - ) : ( - - ) - } + element={} > - ) : ( - - ) - } + element={} /> - ) : ( - - ) - } + element={} > - ) : ( - - ) - } + element={} />