mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-03 23:02:55 +00:00
Merge pull request #153 from ethereum/primary-releases
feat: bold styling for primary releases
This commit is contained in:
commit
43fe9c9f8d
9 changed files with 75 additions and 2 deletions
|
|
@ -11,8 +11,16 @@ import {
|
||||||
Stack
|
Stack
|
||||||
} from '@chakra-ui/react';
|
} from '@chakra-ui/react';
|
||||||
import { FC } from 'react';
|
import { FC } from 'react';
|
||||||
|
|
||||||
|
import {
|
||||||
|
getOS,
|
||||||
|
getParsedDate,
|
||||||
|
isDarwinPrimaryRelease,
|
||||||
|
isLinuxPrimaryRelease,
|
||||||
|
isMobilePrimaryRelease,
|
||||||
|
isWindowsPrimaryRelease
|
||||||
|
} from '../../utils';
|
||||||
import { OpenPGPSignaturesData, ReleaseData } from '../../types';
|
import { OpenPGPSignaturesData, ReleaseData } from '../../types';
|
||||||
import { getParsedDate } from '../../utils';
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
columnHeaders: string[];
|
columnHeaders: string[];
|
||||||
|
|
@ -71,11 +79,26 @@ export const DataTable: FC<Props> = ({ columnHeaders, data }) => {
|
||||||
|
|
||||||
{dataType === 'Releases' &&
|
{dataType === 'Releases' &&
|
||||||
data.map((r: ReleaseData, idx: number) => {
|
data.map((r: ReleaseData, idx: number) => {
|
||||||
|
const url = r?.release?.url;
|
||||||
|
const os = getOS(url);
|
||||||
|
|
||||||
|
const _isLinuxPrimaryRelease = isLinuxPrimaryRelease(r, os, data);
|
||||||
|
const _isDarwinPrimaryRelease = isDarwinPrimaryRelease(r, os, data);
|
||||||
|
const _isWindowsPrimaryRelease = isWindowsPrimaryRelease(r, os, data);
|
||||||
|
const _isMobilePrimaryRelease = isMobilePrimaryRelease(r, os, data);
|
||||||
|
|
||||||
|
const isPrimaryRelease =
|
||||||
|
_isLinuxPrimaryRelease ||
|
||||||
|
_isDarwinPrimaryRelease ||
|
||||||
|
_isWindowsPrimaryRelease ||
|
||||||
|
_isMobilePrimaryRelease;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tr
|
<Tr
|
||||||
key={idx}
|
key={idx}
|
||||||
transition={'all 0.5s'}
|
transition={'all 0.5s'}
|
||||||
_hover={{ background: 'button-bg', transition: 'all 0.5s' }}
|
_hover={{ background: 'button-bg', transition: 'all 0.5s' }}
|
||||||
|
fontWeight={isPrimaryRelease ? 700 : 400}
|
||||||
>
|
>
|
||||||
{Object.entries(r).map((item, idx) => {
|
{Object.entries(r).map((item, idx) => {
|
||||||
const objectItems = ['release', 'commit', 'signature'];
|
const objectItems = ['release', 'commit', 'signature'];
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ export default function Document() {
|
||||||
|
|
||||||
{/* Inter */}
|
{/* Inter */}
|
||||||
<link
|
<link
|
||||||
href='https://fonts.googleapis.com/css2?family=Inter&display=swap'
|
href='https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap'
|
||||||
rel='stylesheet'
|
rel='stylesheet'
|
||||||
></link>
|
></link>
|
||||||
</Head>
|
</Head>
|
||||||
|
|
|
||||||
|
|
@ -50,3 +50,5 @@ export interface OpenPGPSignaturesData {
|
||||||
};
|
};
|
||||||
fingerprint: string;
|
fingerprint: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type OS = 'linux' | 'darwin' | 'windows' | 'mobile';
|
||||||
|
|
|
||||||
11
src/utils/getOS.ts
Normal file
11
src/utils/getOS.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
import { OS } from '../types';
|
||||||
|
|
||||||
|
// slice to get the last part of the url that includes the os
|
||||||
|
export const getOS = (url: string): OS =>
|
||||||
|
url?.slice(46).includes('darwin')
|
||||||
|
? 'darwin'
|
||||||
|
: url?.slice(46).includes('linux')
|
||||||
|
? 'linux'
|
||||||
|
: url?.slice(46).includes('windows')
|
||||||
|
? 'windows'
|
||||||
|
: 'mobile';
|
||||||
|
|
@ -5,6 +5,7 @@ export { fetchXMLData } from './fetchXMLData';
|
||||||
export { getChecksum } from './getChecksum';
|
export { getChecksum } from './getChecksum';
|
||||||
export { getKebabCaseFromName } from './getKebabCaseFromName';
|
export { getKebabCaseFromName } from './getKebabCaseFromName';
|
||||||
export { getLatestBinaryURL } from './getLatestBinaryURL';
|
export { getLatestBinaryURL } from './getLatestBinaryURL';
|
||||||
|
export { getOS } from './getOS';
|
||||||
export { getParsedDate } from './getParsedDate';
|
export { getParsedDate } from './getParsedDate';
|
||||||
export { getProgrammingLanguageName } from './getProgrammingLanguageName';
|
export { getProgrammingLanguageName } from './getProgrammingLanguageName';
|
||||||
export { getReleaseArch } from './getReleaseArch';
|
export { getReleaseArch } from './getReleaseArch';
|
||||||
|
|
@ -16,4 +17,8 @@ export { getReleaseSize } from './getReleaseSize';
|
||||||
export { getReleaseURL } from './getReleaseURL';
|
export { getReleaseURL } from './getReleaseURL';
|
||||||
export { getSignatureURL } from './getSignatureURL';
|
export { getSignatureURL } from './getSignatureURL';
|
||||||
export { getSortedReleases } from './getSortedReleases';
|
export { getSortedReleases } from './getSortedReleases';
|
||||||
|
export { isDarwinPrimaryRelease } from './isDarwinPrimaryRelease';
|
||||||
|
export { isLinuxPrimaryRelease } from './isLinuxPrimaryRelease';
|
||||||
|
export { isMobilePrimaryRelease } from './isMobilePrimaryRelease';
|
||||||
|
export { isWindowsPrimaryRelease } from './isWindowsPrimaryRelease';
|
||||||
export { mapReleasesData } from './mapReleasesData';
|
export { mapReleasesData } from './mapReleasesData';
|
||||||
|
|
|
||||||
8
src/utils/isDarwinPrimaryRelease.ts
Normal file
8
src/utils/isDarwinPrimaryRelease.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
import { OS, ReleaseData } from '../types';
|
||||||
|
|
||||||
|
export const isDarwinPrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) =>
|
||||||
|
os === 'darwin' &&
|
||||||
|
data
|
||||||
|
.slice(0, 2) // get latest build to filter on
|
||||||
|
.filter((e: ReleaseData) => e.arch === '64-bit')
|
||||||
|
.includes(r);
|
||||||
8
src/utils/isLinuxPrimaryRelease.ts
Normal file
8
src/utils/isLinuxPrimaryRelease.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
import { OS, ReleaseData } from '../types';
|
||||||
|
|
||||||
|
export const isLinuxPrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) =>
|
||||||
|
os === 'linux' &&
|
||||||
|
data
|
||||||
|
.slice(0, 12) // get latest build to filter on
|
||||||
|
.filter((e: ReleaseData) => e.arch === '64-bit')
|
||||||
|
.includes(r);
|
||||||
8
src/utils/isMobilePrimaryRelease.ts
Normal file
8
src/utils/isMobilePrimaryRelease.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
import { OS, ReleaseData } from '../types';
|
||||||
|
|
||||||
|
export const isMobilePrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) =>
|
||||||
|
os === 'mobile' &&
|
||||||
|
data
|
||||||
|
.filter((e: ReleaseData) => e.arch === 'all')
|
||||||
|
.slice(0, 1) // get latest build
|
||||||
|
.includes(r);
|
||||||
8
src/utils/isWindowsPrimaryRelease.ts
Normal file
8
src/utils/isWindowsPrimaryRelease.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
import { OS, ReleaseData } from '../types';
|
||||||
|
|
||||||
|
export const isWindowsPrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) =>
|
||||||
|
os === 'windows' &&
|
||||||
|
data
|
||||||
|
.slice(0, 6) // get latest build to filter on
|
||||||
|
.filter((e: ReleaseData) => e.kind === 'Installer' && e.arch === '64-bit')
|
||||||
|
.includes(r);
|
||||||
Loading…
Reference in a new issue