diff --git a/packages_rs/nextclade-web/src/components/Results/ButtonBack.tsx b/packages_rs/nextclade-web/src/components/Results/ButtonBack.tsx
deleted file mode 100644
index fc472ce52..000000000
--- a/packages_rs/nextclade-web/src/components/Results/ButtonBack.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import React, { useMemo } from 'react'
-import { useRouter } from 'next/router'
-import { Button } from 'reactstrap'
-import styled from 'styled-components'
-import { FaCaretLeft } from 'react-icons/fa'
-
-import { useTranslationSafe } from 'src/helpers/useTranslationSafe'
-
-export const ButtonStyled = styled(Button)`
- margin: 2px 2px;
- height: 38px;
- width: 50px;
- color: ${(props) => props.theme.gray700};
-
- @media (min-width: 1200px) {
- width: 140px;
- }
-`
-
-export function ButtonBack() {
- const { t } = useTranslationSafe()
- const text = useMemo(() => t('Back'), [t])
- const { back } = useRouter()
-
- return (
-
-
- {text}
-
- )
-}
diff --git a/packages_rs/nextclade-web/src/components/Results/ButtonNewRun.tsx b/packages_rs/nextclade-web/src/components/Results/ButtonNewRun.tsx
deleted file mode 100644
index 41d5ffe93..000000000
--- a/packages_rs/nextclade-web/src/components/Results/ButtonNewRun.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-import React, { useCallback } from 'react'
-import { useRecoilState, useRecoilValue } from 'recoil'
-import { canRunAtom } from 'src/state/results.state'
-import styled from 'styled-components'
-import {
- Col,
- Modal as ReactstrapModal,
- ModalBody as ReactstrapModalBody,
- ModalFooter as ReactstrapModalFooter,
- ModalHeader as ReactstrapModalHeader,
- Row,
-} from 'reactstrap'
-import { FaFile } from 'react-icons/fa'
-
-import { FilePickerAdvanced } from 'src/components/FilePicker/FilePickerAdvanced'
-import { isNewRunPopupShownAtom } from 'src/state/settings.state'
-import { PanelButton } from 'src/components/Results/PanelButton'
-import { useTranslationSafe } from 'src/helpers/useTranslationSafe'
-
-export const ModalHeader = styled(ReactstrapModalHeader)`
- .modal-title {
- width: 100%;
- }
-`
-
-export const Modal = styled(ReactstrapModal)`
- @media (max-width: 1200px) {
- min-width: 80vw;
- }
- @media (min-width: 1201px) {
- min-width: 957px;
- }
-`
-
-export const ModalBody = styled(ReactstrapModalBody)`
- display: flex;
- height: 66vh;
- flex-direction: column;
-`
-
-export const Scrollable = styled.div`
- flex: 1;
- overflow-y: auto;
-
- // prettier-ignore
- background:
- linear-gradient(#ffffff 33%, rgba(255,255,255, 0)),
- linear-gradient(rgba(255,255,255, 0), #ffffff 66%) 0 100%,
- radial-gradient(farthest-side at 50% 0, rgba(119,119,119, 0.5), rgba(0,0,0,0)),
- radial-gradient(farthest-side at 50% 100%, rgba(119,119,119, 0.5), rgba(0,0,0,0)) 0 100%;
- background-color: #ffffff;
- background-repeat: no-repeat;
- background-attachment: local, local, scroll, scroll;
- background-size: 100% 24px, 100% 24px, 100% 8px, 100% 8px;
-`
-
-export const ModalFooter = styled(ReactstrapModalFooter)``
-
-export function ButtonNewRun() {
- const { t } = useTranslationSafe()
-
- // const algorithmRun = useCallback(() => {
- // // TODO: trigger a run
- // }, [])
-
- const canRun = useRecoilValue(canRunAtom)
- const [isNewRunPopupShown, setIsNewRunPopupShown] = useRecoilState(isNewRunPopupShownAtom)
-
- const open = useCallback(() => setIsNewRunPopupShown(true), [setIsNewRunPopupShown])
- const close = useCallback(() => setIsNewRunPopupShown(false), [setIsNewRunPopupShown])
- const toggle = useCallback(
- () => setIsNewRunPopupShown((isNewRunPopupShown) => !isNewRunPopupShown),
- [setIsNewRunPopupShown],
- )
-
- // const run = useCallback(() => {
- // close()
- // algorithmRun()
- // }, [algorithmRun, close])
-
- return (
- <>
-
-
-
-
-
-
- {t('New run')}
-
-
-
-
-
-
-
-
-
-
- {/* */}
-
-
-
- >
- )
-}
diff --git a/packages_rs/nextclade-web/src/components/Results/ButtonRerun.tsx b/packages_rs/nextclade-web/src/components/Results/ButtonRerun.tsx
deleted file mode 100644
index 6be377566..000000000
--- a/packages_rs/nextclade-web/src/components/Results/ButtonRerun.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import React, { useCallback, useMemo } from 'react'
-import { useRecoilValue } from 'recoil'
-import { canRunAtom } from 'src/state/results.state'
-import styled from 'styled-components'
-import { MdRefresh } from 'react-icons/md'
-
-import { useTranslationSafe } from 'src/helpers/useTranslationSafe'
-import { PanelButton } from 'src/components/Results/PanelButton'
-
-export const RefreshIcon = styled(MdRefresh)`
- width: 22px;
- height: 22px;
- margin-bottom: 3px;
-`
-
-export function ButtonRerun() {
- const { t } = useTranslationSafe()
- const tooltip = useMemo(() => t('Run the algorithm again'), [t])
- const rerun = useCallback(() => {
- // TODO
- }, [])
- const canRun = useRecoilValue(canRunAtom)
-
- return (
-
-
-
- )
-}
diff --git a/packages_rs/nextclade-web/src/components/Results/ButtonTree.tsx b/packages_rs/nextclade-web/src/components/Results/ButtonTree.tsx
deleted file mode 100644
index ca7fcd36f..000000000
--- a/packages_rs/nextclade-web/src/components/Results/ButtonTree.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import React, { useCallback, useMemo } from 'react'
-import { useRouter } from 'next/router'
-import { useRecoilValue } from 'recoil'
-import styled from 'styled-components'
-
-import { hasTreeAtom } from 'src/state/results.state'
-import { useTranslationSafe } from 'src/helpers/useTranslationSafe'
-import { PanelButton } from 'src/components/Results/PanelButton'
-import { TreeIcon } from 'src/components/Tree/TreeIcon'
-
-const IconContainer = styled.span`
- margin-right: 0.5rem;
-`
-
-export function ButtonTree() {
- const { t } = useTranslationSafe()
- const router = useRouter()
-
- const text = useMemo(() => t('Show phylogenetic tree'), [t])
- const hasTree = useRecoilValue(hasTreeAtom)
- const showTree = useCallback(() => router.push('/tree'), [router])
-
- return (
-
-
-
-
-
- )
-}
diff --git a/packages_rs/nextclade-web/src/components/Results/ResultsPage.tsx b/packages_rs/nextclade-web/src/components/Results/ResultsPage.tsx
index 7da595c13..16c450c01 100644
--- a/packages_rs/nextclade-web/src/components/Results/ResultsPage.tsx
+++ b/packages_rs/nextclade-web/src/components/Results/ResultsPage.tsx
@@ -1,18 +1,11 @@
import React, { Suspense } from 'react'
import { useRecoilValue } from 'recoil'
import styled from 'styled-components'
-
import { resultsTableTotalWidthAtom } from 'src/state/settings.state'
import { Layout } from 'src/components/Layout/Layout'
import { GeneMapTable } from 'src/components/GeneMap/GeneMapTable'
-import { ButtonNewRun } from 'src/components/Results/ButtonNewRun'
-import { ButtonBack } from './ButtonBack'
-import { ButtonFilter } from './ButtonFilter'
-import { ButtonTree } from './ButtonTree'
-import { ResultsStatus } from './ResultsStatus'
-import { ResultsFilter } from './ResultsFilter'
-import { ResultsTable } from './ResultsTable'
-import { ButtonRerun } from './ButtonRerun'
+import { ResultsFilter } from 'src/components/Results/ResultsFilter'
+import { ResultsTable } from 'src/components/Results/ResultsTable'
export const Container = styled.div`
width: 100%;
@@ -22,26 +15,6 @@ export const Container = styled.div`
flex-wrap: nowrap;
`
-const Header = styled.header`
- flex-shrink: 1;
- display: flex;
-`
-
-const HeaderLeft = styled.header`
- flex: 0;
-`
-
-const HeaderCenter = styled.header`
- flex: 1;
- padding: 5px 10px;
- border-radius: 5px;
-`
-
-const HeaderRight = styled.header`
- flex: 0;
- display: flex;
-`
-
const WrapperOuter = styled.div`
flex: 1;
width: 100%;
@@ -58,10 +31,6 @@ const WrapperInner = styled.div<{ $minWidth: number }>`
min-width: ${(props) => props.$minWidth}px;
`
-const HeaderRightContainer = styled.div`
- flex: 0;
-`
-
const MainContent = styled.main`
flex: 1;
flex-basis: 100%;
@@ -78,29 +47,6 @@ export function ResultsPage() {
return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages_rs/nextclade-web/src/components/Tree/TreePage.tsx b/packages_rs/nextclade-web/src/components/Tree/TreePage.tsx
index a20642f02..f04d36edc 100644
--- a/packages_rs/nextclade-web/src/components/Tree/TreePage.tsx
+++ b/packages_rs/nextclade-web/src/components/Tree/TreePage.tsx
@@ -3,15 +3,13 @@ import styled from 'styled-components'
import { I18nextProvider } from 'react-i18next'
import { connect } from 'react-redux'
import { AuspiceMetadata } from 'auspice'
-import FiltersSummary from 'auspice/src/components/info/filtersSummary'
-
import type { State } from 'src/state/reducer'
import i18nAuspice from 'src/i18n/i18n.auspice'
+import FiltersSummary from 'auspice/src/components/info/filtersSummary'
import { Layout } from 'src/components/Layout/Layout'
import { LogoGisaid as LogoGisaidBase } from 'src/components/Common/LogoGisaid'
-import { ButtonBack } from 'src/components/Results/ButtonBack'
-import { Tree } from './Tree'
-import { Sidebar } from './Sidebar'
+import { Tree } from 'src/components/Tree/Tree'
+import { Sidebar } from 'src/components/Tree/Sidebar'
export const Container = styled.div`
flex: 1;
@@ -24,22 +22,6 @@ export const Container = styled.div`
flex-wrap: nowrap;
`
-const Header = styled.header`
- display: flex;
- flex-shrink: 0;
- margin-bottom: 7px;
-`
-
-const HeaderLeft = styled.header`
- flex: 0;
-`
-
-const HeaderCenter = styled.header`
- flex: 1;
- padding: 5px 10px;
- border-radius: 5px;
-`
-
const MainContent = styled.main`
flex: 1;
flex-basis: 100%;
@@ -77,6 +59,7 @@ const LogoGisaidWrapper = styled.div`
flex: 0 0 auto;
margin: 0 auto;
margin-right: 2.25rem;
+ margin-top: 10px;
`
const LogoGisaid = styled(LogoGisaidBase)`
@@ -102,14 +85,6 @@ function TreePageDisconnected({ treeMeta }: TreePageProps) {
return (
-
-
{/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}