diff --git a/src/assets/css/_css/code.less b/src/assets/css/_css/code.less index be691a9158..49aa6f48cd 100644 --- a/src/assets/css/_css/code.less +++ b/src/assets/css/_css/code.less @@ -94,6 +94,27 @@ } } } + .sortByContainer{ + display: flex; + flex-flow: row wrap; + gap: 1rem; + align-items: center; + .sortBy{ + font-weight: 500; + } + .inputContainer{ + display: flex; + align-items: center; + gap:0.25rem; + cursor: pointer; + input{ + accent-color: #e10098; + } + label{ + cursor: pointer; + } + } + } .tools-title { margin: 0; } diff --git a/src/components/BackToTop/index.tsx b/src/components/BackToTop/index.tsx index 9a97012034..2889f06e3b 100644 --- a/src/components/BackToTop/index.tsx +++ b/src/components/BackToTop/index.tsx @@ -11,7 +11,6 @@ const BackToTop: React.FC = ({ scrollThreshold }) => { const handleScroll = () => { const pageHeight = document.body.scrollHeight const currentPosition = window.pageYOffset - console.log(pageHeight, currentPosition) if (pageHeight < 6000) { setIsVisible(false) } else { diff --git a/src/pages/code.tsx b/src/pages/code.tsx index c3999a85af..bbba9015e0 100644 --- a/src/pages/code.tsx +++ b/src/pages/code.tsx @@ -182,24 +182,68 @@ export function ToolsList({ pageContext, type }: ToolsListProps) {

{type === "GatewaysAndSupergraphs" ? "Gateways / Supergraphs" : type}

- {pageContext.toolList.map( - tool => ( - console.log(tool.categoryMap, tool.name), - ( -
- {Object.entries(tool.categoryMap).map( - ([categoryName, data]) => - categoryName === type && - )} -
- ) - ) - )} + {pageContext.toolList.map(tool => ( +
+ {Object.entries(tool.categoryMap).map( + ([categoryName, data]) => + categoryName === type && + )} +
+ ))} ) } +const sortLanguageList = (sortConfig: { + sortType?: "popularity" | "alphabetical" + data: Language[] +}) => { + const { sortType = "popularity", data } = sortConfig + const _data = [...data] + if (sortType === "popularity") return _data + _data?.sort((a, b) => { + if (a.name > b.name) { + return 1 + } + if (a.name < b.name) { + return -1 + } + return 0 + }) + return _data +} +const SortInput = (props: { + isChecked: boolean + onChange: (e: any) => unknown + value: string + label: string +}) => { + const { isChecked, onChange, value, label } = props + return ( +
+ + +
+ ) +} export default ({ pageContext }: PageProps<{}, PageContext>) => { + const [sortBy, setSortBy] = useState<"popularity" | "alphabetical">( + "popularity" + ) + const sortedLanguageList = sortLanguageList({ + sortType: sortBy, + data: pageContext.languageList, + }) + const handleInputChange = (e: any) => { + setSortBy(e.target.value) + } return (
@@ -235,8 +279,23 @@ export default ({ pageContext }: PageProps<{}, PageContext>) => {

Language Support

+
+

Sort By:

+ + +
- {pageContext.languageList + {sortedLanguageList ?.map(language => language?.name!) .filter(Boolean) .map(languageName => { @@ -253,7 +312,7 @@ export default ({ pageContext }: PageProps<{}, PageContext>) => { })}
- {pageContext.languageList.map(lang => { + {sortedLanguageList.map(lang => { const languageName = lang.name const libraryCategories = lang.categoryMap const filteredCategorySlugMap = categorySlugMap.filter(