Skip to content

Commit

Permalink
Fix review issues
Browse files Browse the repository at this point in the history
  • Loading branch information
atuchin-m committed Sep 26, 2023
1 parent 24a16ce commit 22ac8d5
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 19 deletions.
42 changes: 33 additions & 9 deletions src/web/app/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ export function IncludeExcludeList(props: {

export function StudyItem(props: { study: StudyModel; filter: StudyFilter }) {
const filter = props.study.filter();
const minVersion = props.study.filter()?.min_version ?? '';
const maxVersion = props.study.filter()?.max_version ?? '';
const minVersion = filter?.min_version ?? '';
const maxVersion = filter?.max_version ?? '';
const experiments = React.useMemo(
() => props.study.filterExperiments(props.filter),
[props.study, props.filter],
Expand Down Expand Up @@ -157,8 +157,11 @@ export function StudyItem(props: { study: StudyModel; filter: StudyFilter }) {
);
}

export function NavItem(props: { type: SeedType }) {
const paramManager = new SearchParamManager(useSearchParams());
export function NavItem(props: {
type: SeedType;
searchParamManager: SearchParamManager;
}) {
const paramManager = props.searchParamManager;
const className =
(props.type === paramManager.currentSeed ? 'active ' : '') +
'nav-item nav-link btn-sm';
Expand Down Expand Up @@ -194,8 +197,9 @@ export function FilterCheckbox(props: {

export function CurrentStudyList(props: {
studies: Map<SeedType, StudyListModel>;
searchParamManager: SearchParamManager;
}) {
const paramManager = new SearchParamManager(useSearchParams());
const paramManager = props.searchParamManager;
const studies = React.useMemo(
() =>
props.studies
Expand Down Expand Up @@ -250,20 +254,40 @@ export function App() {
loadSeedDataAsync(updateState);
}, []);

const searchParams = useSearchParams();
const searchParamManager = React.useMemo(
() => new SearchParamManager(searchParams),
[searchParams],
);

const hasUpstream = state.studies.get(SeedType.UPSTREAM) !== undefined;

return (
<div className="container" id="app">
<section className="navbar navbar-light bg-light">
<h1>Brave Variations</h1>
<nav className="nav nav-pills">
<NavItem type={SeedType.PRODUCTION} />
<NavItem type={SeedType.STAGING} />
{hasUpstream && <NavItem type={SeedType.UPSTREAM} />}
<NavItem
type={SeedType.PRODUCTION}
searchParamManager={searchParamManager}
/>
<NavItem
type={SeedType.STAGING}
searchParamManager={searchParamManager}
/>
{hasUpstream && (
<NavItem
type={SeedType.UPSTREAM}
searchParamManager={searchParamManager}
/>
)}
</nav>
</section>
<main>
<CurrentStudyList studies={state.studies} />
<CurrentStudyList
studies={state.studies}
searchParamManager={searchParamManager}
/>
</main>
</div>
);
Expand Down
22 changes: 12 additions & 10 deletions src/web/app/seed_loader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,18 @@ import { ProcessedStudy } from '../../core/study_processor';

import * as url_utils from '../../core/url_utils';

const getCurrentMajorVersion = new Promise<number>((resolve) => {
loadFile(url_utils.getUsedChromiumVersionUrl, 'text')
.then((chromeVersionData) => {
if (chromeVersionData !== undefined)
resolve(chromeVersionData.split('.')[0] ?? 0);
resolve(0);
})
.catch(() => {
resolve(0);
});
});

async function loadFile(
url: string,
responseType: 'arraybuffer' | 'text',
Expand All @@ -32,16 +44,6 @@ async function loadFile(
});
}

const getCurrentMajorVersion = new Promise<number>((resolve) => {
loadFile(url_utils.getUsedChromiumVersionUrl, 'text')
.then((chromeVersionData) => {
if (chromeVersionData !== undefined)
resolve(chromeVersionData.split('.')[0] ?? 0);
resolve(0);
})
.catch(console.error);
});

async function loadSeedFromUrl(url: string, type: SeedType) {
const data = await loadFile(url, 'arraybuffer');
const seedBytes = new Uint8Array(data);
Expand Down

0 comments on commit 22ac8d5

Please sign in to comment.