File tree Expand file tree Collapse file tree 4 files changed +60
-6
lines changed
src/pages/_home/companies Expand file tree Collapse file tree 4 files changed +60
-6
lines changed Original file line number Diff line number Diff line change 1- type Company = {
1+ export type Company = {
22 /* URL to your company website */
33 url : string ;
44 /* Image path to your company logo */
@@ -113,3 +113,20 @@ export const companies: Company[] = [
113113 alt : "Blindtyping" ,
114114 } ,
115115] ;
116+
117+ const japaneseCompanies : Company [ ] = [
118+ {
119+ url : "https://hapins.net/" ,
120+ src : "ja/hapins.png" ,
121+ alt : "HapInS" ,
122+ } ,
123+ ] ;
124+
125+ const koreanCompanies : Company [ ] = [ ] ;
126+
127+ export const localeToCompaniesMap : Record < string , Company [ ] > = {
128+ ru : companies ,
129+ en : companies ,
130+ ja : japaneseCompanies ,
131+ ko : koreanCompanies ,
132+ } ;
Original file line number Diff line number Diff line change 1- import React , { useMemo } from "react" ;
1+ import React from "react" ;
22// It's utility, not hook =)
33import getBaseUrl from "@docusaurus/useBaseUrl" ;
44import { translate } from "@docusaurus/Translate" ;
55import Marquee from "react-fast-marquee" ;
6- import { shuffle } from "lodash-es" ;
76import { Section } from "@site/src/shared/ui" ;
87
9- import { companies } from "./_config" ;
108import styles from "./styles.module.scss" ;
9+ import { useCompanies } from "./use-companies" ;
1110
1211export const Companies = ( ) => {
13- const companiesShuffled = useMemo ( ( ) => shuffle ( companies ) , [ ] ) ;
12+ const companies = useCompanies ( ) ;
1413
1514 return (
1615 < Section
@@ -19,7 +18,7 @@ export const Companies = () => {
1918 containerClass = { styles . rootContainer }
2019 >
2120 < Marquee pauseOnHover >
22- { companiesShuffled . map ( ( { url, src, alt } ) => (
21+ { companies . map ( ( { url, src, alt } ) => (
2322 < a
2423 key = { src }
2524 className = { styles . item }
Original file line number Diff line number Diff line change 1+ import useDocusaurusContext from "@docusaurus/useDocusaurusContext" ;
2+ import { useMemo } from "react" ;
3+ import { shuffle } from "lodash-es" ;
4+ import { DEFAULT_LOCALE } from "@site/config/docusaurus/consts" ;
5+ import { companies , localeToCompaniesMap } from "./_config" ;
6+
7+ const MIN_COMPANIES_AMOUNT = 8 ;
8+
9+ export const useCompanies = ( ) => {
10+ const { i18n } = useDocusaurusContext ( ) ;
11+
12+ const shuffledLocaleCompanies = useMemo ( ( ) => {
13+ const localeCompanies =
14+ localeToCompaniesMap [ i18n . currentLocale ] || companies ;
15+
16+ const isEnoughLocaleCompanies =
17+ localeCompanies . length >= MIN_COMPANIES_AMOUNT ;
18+
19+ const isDefaultLocale = i18n . currentLocale === DEFAULT_LOCALE ;
20+
21+ const isNeedAddDefaultLocaleCompanies =
22+ ! isEnoughLocaleCompanies && ! isDefaultLocale ;
23+
24+ const fullLocaleCompanies = isNeedAddDefaultLocaleCompanies
25+ ? [
26+ ...localeCompanies ,
27+ ...companies . slice (
28+ 0 ,
29+ MIN_COMPANIES_AMOUNT - localeCompanies . length ,
30+ ) ,
31+ ]
32+ : localeCompanies ;
33+
34+ return shuffle ( fullLocaleCompanies ) ;
35+ } , [ i18n . currentLocale ] ) ;
36+
37+ return shuffledLocaleCompanies ;
38+ } ;
You can’t perform that action at this time.
0 commit comments