diff --git a/ui/dev-dist/sw.js b/ui/dev-dist/sw.js index 65e34dd6..d9ba6e78 100644 --- a/ui/dev-dist/sw.js +++ b/ui/dev-dist/sw.js @@ -82,7 +82,7 @@ define(['./workbox-54d0af47'], (function (workbox) { 'use strict'; "revision": "3ca0b8505b4bec776b69afdba2768812" }, { "url": "index.html", - "revision": "0.271iot081v" + "revision": "0.tihrrtufp5o" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { diff --git a/ui/src/components/layouts/SimpleLayout.tsx b/ui/src/components/layouts/SimpleLayout.tsx index ff6a8878..5a56c9b7 100644 --- a/ui/src/components/layouts/SimpleLayout.tsx +++ b/ui/src/components/layouts/SimpleLayout.tsx @@ -24,9 +24,9 @@ const HeaderActionsEnd = () => { <> - + ) diff --git a/ui/src/components/template/AiAssistant.tsx b/ui/src/components/template/AiAssistant.tsx index 6ffea875..1a0b7e31 100644 --- a/ui/src/components/template/AiAssistant.tsx +++ b/ui/src/components/template/AiAssistant.tsx @@ -2,7 +2,7 @@ import Tooltip from '@/components/ui/Tooltip' import { ROUTES_ENUM } from '@/routes/route.constant' import { useLocalization } from '@/utils/hooks/useLocalization' import { usePermission } from '@/utils/hooks/usePermission' -import { FaHeadset } from 'react-icons/fa'; +import { FcAssistant, FcHeadset } from 'react-icons/fc' import { useNavigate } from 'react-router-dom' const AiAssistant = () => { @@ -15,18 +15,16 @@ const AiAssistant = () => { if (!canViewAi) { return null } - + return ( - <> - -
navigate(ROUTES_ENUM.protected.admin.ai)} - className="flex items-center justify-center w-9 h-9 m-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer transition-colors duration-200" - > - -
-
- + +
navigate(ROUTES_ENUM.protected.admin.ai)} + className="flex items-center justify-center w-9 h-9 m-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer transition-colors duration-200" + > + +
+
) } diff --git a/ui/src/components/template/LanguageSelector.tsx b/ui/src/components/template/LanguageSelector.tsx index afce61eb..5363d86c 100644 --- a/ui/src/components/template/LanguageSelector.tsx +++ b/ui/src/components/template/LanguageSelector.tsx @@ -10,6 +10,8 @@ import { FaCheck } from 'react-icons/fa' import type { CommonProps } from '@/@types/common' import appConfig from '@/configs/app.config' import { dateLocales } from '@/constants/dateLocales.constant' +import { Tooltip } from '../ui' +import { useLocalization } from '@/utils/hooks/useLocalization' const _LanguageSelector = ({ className }: CommonProps) => { const [loading, setLoading] = useState(false) @@ -23,6 +25,8 @@ const _LanguageSelector = ({ className }: CommonProps) => { return languageList?.find((lang) => lang.cultureName === currentLang)?.cultureName }, [currentLang, languageList]) + const { translate } = useLocalization() + const selectedLanguage = (
{loading ? ( @@ -58,26 +62,28 @@ const _LanguageSelector = ({ className }: CommonProps) => { } return ( - - {languageList?.map((lang) => ( - onLanguageSelect(lang.cultureName)} - > - - - {lang.displayName} - - {currentLang === lang.cultureName && } - - ))} - + + + {languageList?.map((lang) => ( + onLanguageSelect(lang.cultureName)} + > + + + {lang.displayName} + + {currentLang === lang.cultureName && } + + ))} + + ) } diff --git a/ui/src/components/template/Notification.tsx b/ui/src/components/template/Notification.tsx index 9364c637..e747e4be 100644 --- a/ui/src/components/template/Notification.tsx +++ b/ui/src/components/template/Notification.tsx @@ -19,9 +19,10 @@ import classNames from 'classnames' import dayjs from 'dayjs' import relativeTime from 'dayjs/plugin/relativeTime' import { useCallback, useEffect, useRef, useState } from 'react' -import { FaBell, FaEnvelopeOpen } from 'react-icons/fa'; +import { FaEnvelopeOpen } from 'react-icons/fa' import { Link } from 'react-router-dom' import { Notification as Notify, toast } from '../ui' +import { FcAdvertising } from 'react-icons/fc' dayjs.extend(relativeTime) @@ -57,10 +58,10 @@ const NotificationToggle = ({ content={unreadCount} innerClass="py-0 px-1" > - + ) : ( - + )}
) @@ -250,88 +251,90 @@ const _Notification = ({ className }: { className?: string }) => { }, [desktopNotificationList]) return ( - - } - menuClass="p-0 min-w-[280px] md:min-w-[340px]" - placement={larger.md ? 'bottom-end' : 'bottom-center'} - onOpen={onNotificationOpen} - > - -
-
{translate('::Abp.Identity.ActivityLogs.Notifications')}
- -
-
-
- - {notificationList.length > 0 && - notificationList.map((item, index) => ( -
onMarkAsRead(item.id)} - > -
{notificationTypeAvatar(item.creatorId, item.tenantId)}
-
-
- {item.notificationType && ( - {item.notificationType} - )} -
{item.message}
+ + + } + menuClass="p-0 min-w-[280px] md:min-w-[340px]" + placement={larger.md ? 'bottom-end' : 'bottom-center'} + onOpen={onNotificationOpen} + > + +
+
{translate('::Abp.Identity.ActivityLogs.Notifications')}
+ +
+
+
+ + {notificationList.length > 0 && + notificationList.map((item, index) => ( +
onMarkAsRead(item.id)} + > +
{notificationTypeAvatar(item.creatorId, item.tenantId)}
+
+
+ {item.notificationType && ( + {item.notificationType} + )} +
{item.message}
+
+ {dayjs(item.date).fromNow()}
- {dayjs(item.date).fromNow()} +
- + ))} + {loading && ( +
+
- ))} - {loading && ( -
- -
- )} - {noResult && ( -
-
- no-notification -
No notifications!
-

Please Try again later

+ )} + {noResult && ( +
+
+ no-notification +
No notifications!
+

Please Try again later

+
-
- )} - -
- -
- - {translate('::Abp.Identity.ActivityLogs.ViewAllActivity')} - + )} +
-
- + +
+ + {translate('::Abp.Identity.ActivityLogs.ViewAllActivity')} + +
+
+ + ) } diff --git a/ui/src/components/template/Search.tsx b/ui/src/components/template/Search.tsx index 39df0596..043a57d9 100644 --- a/ui/src/components/template/Search.tsx +++ b/ui/src/components/template/Search.tsx @@ -6,12 +6,13 @@ import useThemeClass from '@/utils/hooks/useThemeClass' import classNames from 'classnames' import { useEffect, useRef, useState } from 'react' import Highlighter from 'react-highlight-words' -import { FaChevronRight, FaSearch } from 'react-icons/fa'; +import { FaChevronRight, FaSearch } from 'react-icons/fa' import { Link } from 'react-router-dom' import { PermissionCheck } from '../shared' -import { Badge, Checkbox, Pagination } from '../ui' +import { Badge, Checkbox, Pagination, Tooltip } from '../ui' import { useLocalization } from '@/utils/hooks/useLocalization' import { getSearch, getSystems } from '@/services/global-search.service' +import { FcSearch } from 'react-icons/fc' type SearchData = { title: string @@ -173,9 +174,12 @@ const _Search = ({ className }: { className?: string }) => { return ( -
- -
+ +
+ +
+
+ { onKeyDown={(e) => e.key === 'Enter' && handleSearch()} />
-
diff --git a/ui/src/components/template/SidePanel/SidePanel.tsx b/ui/src/components/template/SidePanel/SidePanel.tsx index aeed9439..2973cb84 100644 --- a/ui/src/components/template/SidePanel/SidePanel.tsx +++ b/ui/src/components/template/SidePanel/SidePanel.tsx @@ -1,18 +1,19 @@ import classNames from 'classnames' import Drawer from '@/components/ui/Drawer' -import { FaCog } from 'react-icons/fa'; import SidePanelContent, { SidePanelContentProps } from './SidePanelContent' import withHeaderItem from '@/utils/hoc/withHeaderItem' import { useStoreState, useStoreActions } from '@/store' import type { CommonProps } from '@/@types/common' import { useLocalization } from '@/utils/hooks/useLocalization' +import { FcEngineering } from 'react-icons/fc' +import { Tooltip } from '@/components/ui' type SidePanelProps = SidePanelContentProps & CommonProps const _SidePanel = (props: SidePanelProps) => { const { setPanelExpand } = useStoreActions((actions) => actions.theme) - const {translate } = useLocalization() + const { translate } = useLocalization() const { className, ...rest } = props @@ -34,9 +35,11 @@ const _SidePanel = (props: SidePanelProps) => { return ( <> -
- -
+ +
+ +
+
{ { label: translate('::Abp.Identity.Profile'), path: ROUTES_ENUM.protected.admin.profile.general, - icon: , + icon: , }, { label: translate('::Abp.Identity.ActivityLogs'), path: ROUTES_ENUM.protected.admin.activityLog, - icon: , + icon: , }, ] @@ -48,37 +49,35 @@ const _UserDropdown = ({ className }: CommonProps) => { ) return ( -
- - -
- -
-
{name}
-
{email}
-
+ + +
+ +
+
{name}
+
{email}
+
+
+ + {dropdownItemList.map((item) => ( + + + + {item.icon} + {item.label} + + - - {dropdownItemList.map((item) => ( - - - - {item.icon} - {item.label} - - - - ))} - {/* */} - - - - - {translate('::Abp.Identity.SignOut')} - -
-
+ ))} + {/* */} + + + + + {translate('::Abp.Identity.SignOut')} + +
) } diff --git a/ui/src/components/ui/Menu/MenuCollapse.tsx b/ui/src/components/ui/Menu/MenuCollapse.tsx index 16f0cc0b..dce32324 100644 --- a/ui/src/components/ui/Menu/MenuCollapse.tsx +++ b/ui/src/components/ui/Menu/MenuCollapse.tsx @@ -52,7 +52,7 @@ const MenuCollapse = (props: MenuCollapseProps) => {
{label} ((props, ref) => { disabled, eventKey, isActive, - menuItemHeight = 35, + menuItemHeight = 30, onSelect, style, variant = 'light',