| @@ -11,6 +11,7 @@ import cn from '@/utils/classnames' | |||
| import { fetchInstalledAppList as doFetchInstalledAppList, uninstallApp, updatePinStatus } from '@/service/explore' | |||
| import ExploreContext from '@/context/explore-context' | |||
| import Confirm from '@/app/components/base/confirm' | |||
| import Divider from '@/app/components/base/divider' | |||
| import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints' | |||
| const SelectedDiscoveryIcon = () => ( | |||
| @@ -89,6 +90,7 @@ const SideBar: FC<IExploreSideBarProps> = ({ | |||
| fetchInstalledAppList() | |||
| }, [controlUpdateInstalledApps]) | |||
| const pinnedAppsCount = installedApps.filter(({ is_pinned }) => is_pinned).length | |||
| return ( | |||
| <div className='w-fit sm:w-[216px] shrink-0 pt-6 px-4 border-gray-200 cursor-pointer'> | |||
| <div> | |||
| @@ -109,10 +111,9 @@ const SideBar: FC<IExploreSideBarProps> = ({ | |||
| height: 'calc(100vh - 250px)', | |||
| }} | |||
| > | |||
| {installedApps.map(({ id, is_pinned, uninstallable, app: { name, icon_type, icon, icon_url, icon_background } }) => { | |||
| return ( | |||
| {installedApps.map(({ id, is_pinned, uninstallable, app: { name, icon_type, icon, icon_url, icon_background } }, index) => ( | |||
| <React.Fragment key={id}> | |||
| <Item | |||
| key={id} | |||
| isMobile={isMobile} | |||
| name={name} | |||
| icon_type={icon_type} | |||
| @@ -129,8 +130,9 @@ const SideBar: FC<IExploreSideBarProps> = ({ | |||
| setShowConfirm(true) | |||
| }} | |||
| /> | |||
| ) | |||
| })} | |||
| {index === pinnedAppsCount - 1 && index !== installedApps.length - 1 && <Divider />} | |||
| </React.Fragment> | |||
| ))} | |||
| </div> | |||
| </div> | |||
| )} | |||