Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion packages/dev/s2-docs/src/ComponentCardView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ interface ComponentCardGridProps {
ariaLabel?: string,
size?: 'S' | 'M' | 'L',
onAction?: (key: Key) => void,
renderEmptyState?: () => React.ReactNode
renderEmptyState?: () => React.ReactNode,
date?: string
}

export function ComponentCardView({items, ariaLabel = 'Items', size = 'S', onAction, renderEmptyState}: ComponentCardGridProps) {
Expand Down
43 changes: 40 additions & 3 deletions packages/dev/s2-docs/src/MobileSearchMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,15 @@ function MobileNav({pages, currentPage}: PageProps) {
return matchedPages.sort((a, b) => {
let aNameMatch = title(a).toLowerCase().startsWith(searchLower);
let bNameMatch = title(b).toLowerCase().startsWith(searchLower);
if (a.date && b.date) {
let aDate = new Date(a.date);
let bDate = new Date(b.date);
return bDate.getTime() - aDate.getTime();
} else if (a.date && !b.date) {
return 1;
} else if (!a.date && b.date) {
return -1;
}

if (aNameMatch && !bNameMatch) {
return -1;
Expand All @@ -325,16 +334,32 @@ function MobileNav({pages, currentPage}: PageProps) {
let filteredPages = filterPages(pages, searchValue);

return filteredPages
.sort((a, b) => title(a).localeCompare(title(b)))
.map(page => ({id: page.url.replace(/^\//, ''), name: title(page), href: page.url, description: page.exports?.description}));
.sort((a, b) => {
return title(a).localeCompare(title(b));
})
.map(page => ({id: page.url.replace(/^\//, ''), name: title(page), href: page.url, description: page.exports?.description, date: page.exports?.date}));
};

let getAllContent = (libraryId: string, searchValue: string = ''): ComponentCardItem[] => {
let librarySections = getSectionsForLibrary(libraryId);
let allPages = Array.from(librarySections.values()).flat();
let filteredPages = filterPages(allPages, searchValue);
return filteredPages
.sort((a, b) => title(a).localeCompare(title(b)))
.sort((a, b) => {
console.log('getAllContent');
console.log('a', a);
console.log('b', b);
if (a.date && b.date) {
let aDate = new Date(a.date);
let bDate = new Date(b.date);
return bDate.getTime() - aDate.getTime();
} else if (a.date && !b.date) {
return 1;
} else if (!a.date && b.date) {
return -1;
}
return title(a).localeCompare(title(b));
})
.map(page => ({id: page.url.replace(/^\//, ''), name: title(page), href: page.url, description: page.exports?.description}));
};

Expand All @@ -352,8 +377,20 @@ function MobileNav({pages, currentPage}: PageProps) {
// Sort to show "Introduction" first when search is empty
if (searchValue.trim().length === 0) {
items = [...items].sort((a, b) => {
console.log('getItemsForSelection');
console.log('a', a);
console.log('b', b);
const aIsIntro = a.name === 'Introduction';
const bIsIntro = b.name === 'Introduction';
if (a.date && b.date) {
let aDate = new Date(a.date);
let bDate = new Date(b.date);
return bDate.getTime() - aDate.getTime();
} else if (a.date && !b.date) {
return 1;
} else if (!a.date && b.date) {
return -1;
}

if (aIsIntro && !bIsIntro) {
return -1;
Expand Down