From 82c69ff68dcdb9a812b827a593b9e553e06ac599 Mon Sep 17 00:00:00 2001 From: GodD6366 <daichangchun6366@gmail.com> Date: Sun, 9 Oct 2022 09:40:37 +0000 Subject: [PATCH] support sort layout --- src/pages/index.jsx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 88c25cc4..c457bda2 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -177,6 +177,21 @@ function Home({ initialSettings }) { const servicesAndBookmarks = [...services.map(sg => sg.services).flat(), ...bookmarks.map(bg => bg.bookmarks).flat()] + // sort layout + const layouts = Object.keys(initialSettings.layout); + let sortedServices = []; + const copiedServices = services.slice(); + layouts.forEach((currentServer) => { + if (initialSettings.layout[currentServer]?.sort) { + const idx = copiedServices.findIndex((service) => service.name === currentServer); + sortedServices.push(...copiedServices.splice(idx, 1)); + } + }); + + if (copiedServices.length) { + sortedServices = sortedServices.concat(copiedServices); + } + useEffect(() => { if (settings.language) { i18n.changeLanguage(settings.language); @@ -263,9 +278,9 @@ function Home({ initialSettings }) { )} </div> - {services && ( + {sortedServices && ( <div className="flex flex-wrap p-4 sm:p-8 sm:pt-4 items-start pb-2"> - {services.map((group) => ( + {sortedServices.map((group) => ( <ServicesGroup key={group.name} services={group} layout={initialSettings.layout?.[group.name]} /> ))} </div>