@vtex/faststore-plugin-buyer-portal 2.0.13 → 2.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -1
- package/cms/b2b/components/.gitkeep +0 -0
- package/cms/b2b/pages/cms_content_type__i18n.jsonc +36 -0
- package/cypress/integration/localization.test.ts +482 -0
- package/cypress/support/commands.ts +8 -0
- package/docs/i18n/i18n-messages-format.md +391 -0
- package/docs/i18n/locales.json +701 -0
- package/docs/i18n/migration-inventory.md +959 -0
- package/package.json +3 -3
- package/specs/custom-localization-system.md +711 -0
- package/specs/multi-locale-e2e-validation.md +277 -0
- package/src/__mocks__/discovery.config.ts +12 -0
- package/src/features/accounting-fields/components/AccountingConfirmDelete/AccountingConfirmDelete.tsx +14 -4
- package/src/features/accounting-fields/components/AccountingFieldConfirmEdit/AccountingFieldConfirmEdit.tsx +11 -6
- package/src/features/accounting-fields/components/AccountingFieldDropdown/AccountingFieldDropdown.tsx +5 -3
- package/src/features/accounting-fields/components/AccountingFieldForm/AccountingFieldForm.tsx +33 -23
- package/src/features/accounting-fields/components/AccountingValueConfirmEdit/AccountingValueConfirmEdit.tsx +10 -6
- package/src/features/accounting-fields/components/AccountingValueDropdown/AccountingValueDropdown.tsx +19 -9
- package/src/features/accounting-fields/components/AccountingValueForm/AccountingValueForm.tsx +21 -10
- package/src/features/accounting-fields/components/CreateAccountingFieldDrawer/CreateAccountingFieldDrawer.tsx +11 -8
- package/src/features/accounting-fields/components/CreateAccountingValueDrawer/CreateAccountingValueDrawer.tsx +18 -7
- package/src/features/accounting-fields/components/DeleteAccountingFieldDrawer/DeleteAccountingFieldDrawer.tsx +14 -12
- package/src/features/accounting-fields/components/DeleteAccountingValueDrawer/DeleteAccountingValueDrawer.tsx +20 -10
- package/src/features/accounting-fields/components/EditAccountingFieldDrawer/EditAccountingFieldDrawer.tsx +5 -3
- package/src/features/accounting-fields/components/EditAccountingValueDrawer/EditAccountingValueDrawer.tsx +13 -6
- package/src/features/accounting-fields/components/RemoveValueFromUnitDrawer/RemoveValueFromUnitDrawer.tsx +19 -8
- package/src/features/accounting-fields/layouts/AccountingFieldLayout/AccountingFieldLayout.tsx +11 -9
- package/src/features/addresses/components/AddRecipientsDrawer/AddRecipientsDrawer.tsx +13 -7
- package/src/features/addresses/components/AddressDropdownMenu/AddressDropdownMenu.tsx +22 -20
- package/src/features/addresses/components/AddressForm/AddressForm.tsx +33 -22
- package/src/features/addresses/components/AddressLine/AddressLine.tsx +29 -25
- package/src/features/addresses/components/AddressLocationsList/AddressLocationsList.tsx +15 -6
- package/src/features/addresses/components/AddressRecipientsList/AddressRecipientsList.tsx +9 -4
- package/src/features/addresses/components/AddressesCard/AddressesCard.tsx +8 -5
- package/src/features/addresses/components/CreateAddressDrawer/CreateAddressDrawer.tsx +27 -14
- package/src/features/addresses/components/CreateAddressSettingsDrawer/CreateAddressSettingsDrawer.tsx +26 -21
- package/src/features/addresses/components/DeleteAddressDrawer/DeleteAddressDrawer.tsx +20 -16
- package/src/features/addresses/components/DeleteAddressLocationDrawer/DeleteAddressLocationDrawer.tsx +26 -14
- package/src/features/addresses/components/DeleteRecipientAddressDrawer/DeleteRecipientAddressDrawer.tsx +20 -17
- package/src/features/addresses/components/EditAddressDrawer/EditAddressDrawer.tsx +12 -6
- package/src/features/addresses/components/EditAddressLocationDrawer/EditAddressLocationDrawer.tsx +24 -17
- package/src/features/addresses/components/EditRecipientAddressDrawer/EditRecipientAddressDrawer.tsx +17 -15
- package/src/features/addresses/components/LocationForm/LocationField/LocationField.tsx +8 -5
- package/src/features/addresses/components/LocationForm/LocationForm.tsx +9 -3
- package/src/features/addresses/components/LocationsDrawer/LocationsDrawer.tsx +15 -9
- package/src/features/addresses/components/RecipientsForm/RecipientItem/RecipientItem.tsx +55 -46
- package/src/features/addresses/components/RecipientsForm/RecipientsForm.tsx +4 -1
- package/src/features/addresses/components/RemoveAddressDrawer/RemoveAddressDrawer.tsx +21 -14
- package/src/features/addresses/layouts/AddressDetailsLayout/AddressDetailsLayout.tsx +16 -9
- package/src/features/addresses/layouts/AddressesLayout/AddressesLayout.tsx +11 -8
- package/src/features/b2b-agent/layouts/B2BAgentLayout/B2BAgentLayout.tsx +3 -1
- package/src/features/budgets/components/BudgetAddForm/BudgetAddForm.tsx +14 -12
- package/src/features/budgets/components/BudgetAddSuccess/BudgetAddSuccess.tsx +16 -14
- package/src/features/budgets/components/BudgetAllocationsSelection/BudgetAllocationsSelection.tsx +8 -5
- package/src/features/budgets/components/BudgetAllocationsTable/BudgetAllocationsTable.tsx +9 -6
- package/src/features/budgets/components/BudgetDeleteDrawer/BudgetDeleteDrawer.tsx +23 -17
- package/src/features/budgets/components/BudgetEditNotificationDrawer/BudgetEditNotificationDrawer.tsx +13 -6
- package/src/features/budgets/components/BudgetNotificationForm/BudgetNotificationForm.tsx +31 -24
- package/src/features/budgets/components/BudgetNotificationsInfo/BudgetNotificationsInfo.tsx +15 -9
- package/src/features/budgets/components/BudgetRemainingBalance/BudgetRemainingBalance.tsx +6 -2
- package/src/features/budgets/components/BudgetSettingsInfo/BudgetSettingsInfo.tsx +27 -10
- package/src/features/budgets/components/BudgetUsersTable/BudgetUsersTable.tsx +14 -7
- package/src/features/budgets/components/BudgetsTable/BudgetsTable.tsx +11 -8
- package/src/features/budgets/components/CreateBudgetAllocationDrawer/CreateBudgetAllocationDrawer.tsx +8 -5
- package/src/features/budgets/components/CreateBudgetDrawer/CreateBudgetDrawer.tsx +31 -18
- package/src/features/budgets/components/DeleteBudgetAllocationDrawer/DeleteBudgetAllocationDrawer.tsx +17 -12
- package/src/features/budgets/components/EditBudgetDrawer/EditBudgetDrawer.tsx +14 -8
- package/src/features/budgets/components/EmptyState.tsx/EmptyState.tsx +4 -1
- package/src/features/budgets/layouts/BudgetsDetailsLayout/BudgetsDetailsLayout.tsx +7 -5
- package/src/features/budgets/layouts/BudgetsLayout/BudgetsLayout.tsx +5 -3
- package/src/features/budgets/messages/budgetNotifications.ts +5 -5
- package/src/features/budgets/utils/handleBudgetError.tsx +5 -8
- package/src/features/budgets/utils/handleBudgetError.types.ts +3 -0
- package/src/features/buying-policies/components/AccountingFieldCriteriaSelector/AccountingFieldCriteriaSelector.tsx +5 -3
- package/src/features/buying-policies/components/AccountingFieldCriteriaSelector/AccountingValueCriteriaSelector.tsx +20 -9
- package/src/features/buying-policies/components/AddBuyingPolicyDrawer/AddBuyingPolicyDrawer.tsx +8 -5
- package/src/features/buying-policies/components/BasicBuyingPolicyDrawer/BasicBuyingPolicyDrawer.tsx +49 -33
- package/src/features/buying-policies/components/BudgetCriteriaSelector/BudgetCriteriaSelector.tsx +8 -2
- package/src/features/buying-policies/components/BuyingPolicyDropdownMenu/BuyingPolicyDropdownMenu.tsx +5 -3
- package/src/features/buying-policies/components/DeleteBuyingPolicyDrawer/DeleteBuyingPolicyDrawer.tsx +28 -24
- package/src/features/buying-policies/components/UpdateBuyingPolicyDrawer/UpdateBuyingPolicyDrawer.tsx +10 -7
- package/src/features/buying-policies/layouts/BuyingPoliciesLayout/BuyingPoliciesLayout.tsx +11 -4
- package/src/features/buying-policies/layouts/BuyingPolicyDetailsLayout/BuyingPolicyDetailsLayout.tsx +26 -9
- package/src/features/buying-policies/utils/accountingFieldCriteriaHelpers.ts +2 -2
- package/src/features/buying-policies/utils/buyingPoliciesWorkflowTypes.ts +3 -3
- package/src/features/buying-policies/utils/orderFieldsCriteriaOptions.ts +8 -8
- package/src/features/buying-policies/utils/spendingLimitsCriteriaOptions.ts +6 -6
- package/src/features/contracts/components/ContractsCard/ContractsCard.tsx +7 -5
- package/src/features/contracts/layouts/ContractsLayout/ContractsLayout.tsx +9 -4
- package/src/features/credit-cards/components/CreateCreditCardDrawer/CreateCreditCardDrawer.tsx +17 -11
- package/src/features/credit-cards/components/CreditCardDropdownMenu/CreditCardDropdownMenu.tsx +17 -11
- package/src/features/credit-cards/components/CreditCardForm/CreditCardForm.tsx +8 -5
- package/src/features/credit-cards/components/CreditCardSettingsDrawer/CreditCardSettingsDrawer.tsx +10 -8
- package/src/features/credit-cards/components/DeleteCreditCardDrawer/DeleteCreditCardDrawer.tsx +19 -14
- package/src/features/credit-cards/components/EditCreditCardDrawer/EditCreditCardDrawer.tsx +14 -13
- package/src/features/credit-cards/components/RemoveCreditCardDrawer/RemoveCreditCardDrawer.tsx +18 -15
- package/src/features/credit-cards/layouts/CreditCardsLayout/CreditCardLayout.tsx +10 -4
- package/src/features/order-entry/layouts/OrderEntryLayout.tsx +3 -1
- package/src/features/org-units/components/AddAllToOrgUnitDropdown/AddAllToOrgUnitDropdown.tsx +11 -9
- package/src/features/org-units/components/AuthSetupDrawer/AuthSetupDrawer.tsx +28 -16
- package/src/features/org-units/components/CreateOrgUnitDrawer/CreateOrgUnitDrawer.tsx +18 -12
- package/src/features/org-units/components/DeleteOrgUnitDrawer/DeleteOrgUnitDrawer.tsx +28 -29
- package/src/features/org-units/components/OrgUnitBreadcrumb/OrgUnitBreadcrumbLink.tsx +4 -4
- package/src/features/org-units/components/OrgUnitDetailsDropdownMenu/OrgUnitDetailsDropdownMenu.tsx +4 -2
- package/src/features/org-units/components/OrgUnitDetailsNavbar/OrgUnitDetailsNavbar.tsx +23 -5
- package/src/features/org-units/components/OrgUnitDetailsNavbar/org-unit-details-navbar.scss +18 -2
- package/src/features/org-units/components/OrgUnitsDropdownMenu/OrgUnitsDropdownMenu.tsx +6 -4
- package/src/features/org-units/components/OrgUnitsHierarchyTree/OrgUnitsHierarchyTree.tsx +9 -6
- package/src/features/org-units/components/OrganizationalUnitsCard/OrganizationalUnitsCard.tsx +15 -7
- package/src/features/org-units/components/UpdateOrgUnitDrawer/UpdateOrgUnitDrawer.tsx +15 -9
- package/src/features/org-units/layouts/OrgUnitDetailsLayout/OrgUnitDetailsLayout.tsx +27 -26
- package/src/features/org-units/layouts/OrgUnitsLayout/OrgUnitsLayout.tsx +8 -3
- package/src/features/payment-methods/components/AddPaymentMethodsDrawer/AddPaymentMethodsDrawer.tsx +29 -18
- package/src/features/payment-methods/components/PaymentMethodSettingsDrawer/PaymentMethodSettingsDrawer.tsx +13 -9
- package/src/features/payment-methods/components/RemoveMethodButton/RemoveMethodButton.tsx +5 -2
- package/src/features/payment-methods/components/RemovePaymentMethodsDrawer/RemovePaymentMethodsDrawer.tsx +10 -7
- package/src/features/payment-methods/hooks/useRemovePaymentMethodSubmit.ts +6 -4
- package/src/features/payment-methods/layouts/PaymentMethodsLayout/PaymentMethodsLayout.tsx +21 -15
- package/src/features/product-assortment/components/ProductAssortmentTable/ProductAssortmentTable.tsx +11 -7
- package/src/features/product-assortment/layouts/ProductAssortmentLayout/ProductAssortmentLayout.tsx +9 -6
- package/src/features/profile/components/ProfileCard/ProfileCard.tsx +8 -5
- package/src/features/profile/components/ProfileSummary/ProfileSummary.tsx +13 -6
- package/src/features/profile/layouts/ProfileLayout/ProfileLayout.tsx +16 -6
- package/src/features/roles/layout/RoleDetailsLayout/RoleDetailsLayout.tsx +4 -2
- package/src/features/roles/layout/RolesLayout/RolesLayout.tsx +5 -3
- package/src/features/shared/components/BasicCard/BasicCard.tsx +6 -4
- package/src/features/shared/components/BasicCard/BasicCardLine.tsx +5 -4
- package/src/features/shared/components/CustomerSwitch/CustomerSwitchDrawer.tsx +10 -2
- package/src/features/shared/components/CustomerSwitch/CustomerSwitchSearch.tsx +4 -1
- package/src/features/shared/components/DropdownFilter/DropdownFilter.tsx +11 -7
- package/src/features/shared/components/Error/Error.tsx +13 -6
- package/src/features/shared/components/HeaderInside/HeaderInside.tsx +5 -2
- package/src/features/shared/components/InternalSearch/InternalSearch.tsx +4 -1
- package/src/features/shared/components/InternalTopbar/InternalTopbar.tsx +7 -5
- package/src/features/shared/components/MainLinksDropdownMenu/MainLinksDropdownMenu.tsx +23 -8
- package/src/features/shared/components/OrgUnitInputSearch/OrgUnitInputSearch.tsx +7 -2
- package/src/features/shared/components/Pagination/Pagination.tsx +6 -2
- package/src/features/shared/components/Paginator/Counter.tsx +11 -5
- package/src/features/shared/components/Paginator/Interval.tsx +4 -3
- package/src/features/shared/components/Paginator/NextPageButton.tsx +6 -2
- package/src/features/shared/components/SettingsDrawer/SettingsDrawer.tsx +6 -4
- package/src/features/shared/components/SettingsDrawer/SettingsDrawerListType.tsx +11 -10
- package/src/features/shared/components/SettingsDrawer/listTypeOptions.ts +10 -7
- package/src/features/shared/components/SortFilter/SortFilter.tsx +15 -8
- package/src/features/shared/components/Table/TableRow/TableRow.tsx +5 -1
- package/src/features/shared/components/VerticalNav/VerticalNavLink.tsx +7 -3
- package/src/features/shared/layouts/BaseTabsLayout/Navbar.tsx +28 -4
- package/src/features/shared/layouts/BaseTabsLayout/about-drawer/AboutDrawer.tsx +15 -5
- package/src/features/shared/layouts/BaseTabsLayout/base-tabs-layout.scss +24 -9
- package/src/features/shared/layouts/BaseTabsLayout/sidebar-drawer/SidebarDrawer.tsx +5 -2
- package/src/features/shared/layouts/ContractTabsLayout/ContractTabsLayout.tsx +10 -5
- package/src/features/shared/layouts/ErrorTabsLayout/ErrorTabsLayout.tsx +7 -4
- package/src/features/shared/layouts/FinanceTabsLayout/FinanceTabsLayout.tsx +9 -4
- package/src/features/shared/layouts/LoadingTabsLayout/LoadingTabsLayout.tsx +7 -4
- package/src/features/shared/layouts/OrgUnitTabsLayout/OrgUnitTabLayout.tsx +3 -0
- package/src/features/shared/layouts/SumaPageLayout/FullSidebarNav.tsx +13 -7
- package/src/features/shared/layouts/SumaPageLayout/SumaSidebar.tsx +9 -5
- package/src/features/shared/localization/LocalizationContext.tsx +35 -0
- package/src/features/shared/localization/__tests__/createLocalize.test.ts +166 -0
- package/src/features/shared/localization/__tests__/get-localization-labels.service.test.ts +202 -0
- package/src/features/shared/localization/clients/LocalizationClient.ts +19 -0
- package/src/features/shared/localization/constants.ts +31 -0
- package/src/features/shared/localization/createLocalize.ts +78 -0
- package/src/features/shared/localization/services/get-localization-labels.service.ts +76 -0
- package/src/features/shared/localization/types.ts +66 -0
- package/src/features/shared/localization/withLocalization.tsx +22 -0
- package/src/features/shared/types/AuthRouteProps.ts +5 -0
- package/src/features/shared/types/LoaderData.ts +1 -0
- package/src/features/shared/utils/addresLabelToPropMapping.ts +10 -10
- package/src/features/shared/utils/constants.ts +1 -4
- package/src/features/shared/utils/getContractSettingsLinks.ts +17 -12
- package/src/features/shared/utils/getFinanceSettingsLinks.ts +14 -9
- package/src/features/shared/utils/getKeyByValue.ts +2 -2
- package/src/features/shared/utils/getOrganizationSettingsLinks.ts +13 -3
- package/src/features/shared/utils/getSumaListingSidebarLinks.ts +15 -10
- package/src/features/shared/utils/index.ts +2 -0
- package/src/features/shared/utils/routeLayoutMapping.ts +30 -30
- package/src/features/shared/utils/search.tsx +10 -0
- package/src/features/shared/utils/withAuth.tsx +6 -0
- package/src/features/shared/utils/withAuthLoader.ts +11 -0
- package/src/features/shared/utils/withLoaderErrorBoundary.ts +9 -0
- package/src/features/shared/utils/withProviders.tsx +13 -2
- package/src/features/users/components/CreateUserDrawer/CreateUserDrawer.tsx +39 -27
- package/src/features/users/components/CreateUserDrawerWithUsername/CreateUserDrawerWithUsername.tsx +41 -39
- package/src/features/users/components/DeleteUserDrawer/DeleteUserDrawer.tsx +27 -23
- package/src/features/users/components/EmailTransactionalSection/EmailTransactionalSection.tsx +6 -8
- package/src/features/users/components/LoginField/LoginField.tsx +4 -4
- package/src/features/users/components/ReassignOrgUnitDrawer/ReassignOrgUnitDrawer.tsx +22 -19
- package/src/features/users/components/ResetPasswordDrawer/ResetPasswordDrawer.tsx +16 -21
- package/src/features/users/components/UpdateUserDrawer/UpdateUserDrawer.tsx +26 -15
- package/src/features/users/components/UpdateUserDrawerWithUsername/UpdateUserDrawerWithUsername.tsx +22 -8
- package/src/features/users/components/UserDropdownMenu/UserDropdownMenu.tsx +7 -5
- package/src/features/users/components/UserFormFields/UserFormFields.tsx +9 -8
- package/src/features/users/components/UsersCard/UsersCard.tsx +4 -2
- package/src/features/users/layouts/UserDetailsLayout/UserDetailsLayout.tsx +26 -10
- package/src/features/users/layouts/UsersLayout/UsersLayout.tsx +12 -8
- package/src/pages/accounting-field.tsx +28 -15
- package/src/pages/address-details.tsx +37 -26
- package/src/pages/addresses.tsx +27 -12
- package/src/pages/budgets-details.tsx +25 -15
- package/src/pages/budgets.tsx +31 -17
- package/src/pages/buyer-organization-manager.tsx +23 -12
- package/src/pages/buying-policies.tsx +38 -20
- package/src/pages/buying-policy-details.tsx +20 -19
- package/src/pages/contracts.tsx +15 -1
- package/src/pages/credit-cards.tsx +30 -17
- package/src/pages/order-entry.tsx +26 -15
- package/src/pages/org-unit-details.tsx +20 -6
- package/src/pages/org-units.tsx +20 -6
- package/src/pages/payment-groups.tsx +15 -12
- package/src/pages/productAssortment.tsx +10 -1
- package/src/pages/profile.tsx +14 -1
- package/src/pages/role-details.tsx +19 -6
- package/src/pages/roles.tsx +27 -14
- package/src/pages/user-details.tsx +29 -17
- package/src/pages/users.tsx +11 -0
- package/vitest.config.ts +13 -0
- package/src/features/addresses/constants/messages.ts +0 -8
- package/src/features/credit-cards/constants/messages.ts +0 -6
|
@@ -2,6 +2,7 @@ import { useState, type ComponentProps } from "react";
|
|
|
2
2
|
|
|
3
3
|
import { AutocompleteDropdown } from "..";
|
|
4
4
|
import { useDebouncedSearchOrgUnit } from "../../../users/hooks";
|
|
5
|
+
import { useLocalization } from "../../localization/LocalizationContext";
|
|
5
6
|
import { OptionSelected } from "../OptionSelected/OptionSelected";
|
|
6
7
|
|
|
7
8
|
type Option = {
|
|
@@ -28,12 +29,16 @@ export const OrgUnitInputSearch = ({
|
|
|
28
29
|
orgUnit,
|
|
29
30
|
...otherProps
|
|
30
31
|
}: OrgUnitInputSearchProps) => {
|
|
32
|
+
const { t } = useLocalization();
|
|
31
33
|
const [autocompleteInputValue, setAutocompleteInputValue] = useState("");
|
|
32
34
|
|
|
33
35
|
const { searchedOrgUnits, isSearchedOrgUnitsLoading } =
|
|
34
36
|
useDebouncedSearchOrgUnit(autocompleteInputValue);
|
|
35
37
|
|
|
36
|
-
const loadingObject: Option = {
|
|
38
|
+
const loadingObject: Option = {
|
|
39
|
+
id: "loading",
|
|
40
|
+
name: t("shared.labels.loading"),
|
|
41
|
+
};
|
|
37
42
|
|
|
38
43
|
const handleSelect = (option: Option) => {
|
|
39
44
|
if (option.id === loadingObject.id) return;
|
|
@@ -56,7 +61,7 @@ export const OrgUnitInputSearch = ({
|
|
|
56
61
|
) : (
|
|
57
62
|
<AutocompleteDropdown
|
|
58
63
|
{...otherProps}
|
|
59
|
-
label="
|
|
64
|
+
label={t("shared.labels.searchOrganizationalUnits")}
|
|
60
65
|
value={autocompleteInputValue}
|
|
61
66
|
options={isSearchedOrgUnitsLoading ? [loadingObject] : searchedOrgUnits}
|
|
62
67
|
onConfirmKeyPress={handleSelect}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Button, Skeleton } from "@faststore/ui";
|
|
2
2
|
|
|
3
|
+
import { useLocalization } from "../../localization/LocalizationContext";
|
|
4
|
+
|
|
3
5
|
interface PaginationProps {
|
|
4
6
|
currentCount: number;
|
|
5
7
|
variant?: "default" | "onlyText" | "counter";
|
|
@@ -15,11 +17,13 @@ export const Pagination = ({
|
|
|
15
17
|
variant = "default",
|
|
16
18
|
showMore,
|
|
17
19
|
}: PaginationProps) => {
|
|
20
|
+
const { t } = useLocalization();
|
|
21
|
+
|
|
18
22
|
return (
|
|
19
23
|
<div data-fs-bp-pagination>
|
|
20
24
|
{variant === "default" && (
|
|
21
25
|
<Button variant="tertiary" onClick={showMore} loading={loading}>
|
|
22
|
-
|
|
26
|
+
{t("shared.buttons.loadMore")}
|
|
23
27
|
</Button>
|
|
24
28
|
)}
|
|
25
29
|
|
|
@@ -27,7 +31,7 @@ export const Pagination = ({
|
|
|
27
31
|
{loading ? (
|
|
28
32
|
<Skeleton size={{ width: "3.75rem", height: "1.25rem" }} />
|
|
29
33
|
) : (
|
|
30
|
-
|
|
34
|
+
t("shared.pagination.counter", [currentCount, total])
|
|
31
35
|
)}
|
|
32
36
|
</span>
|
|
33
37
|
</div>
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
import { useLocalization } from "../../localization/LocalizationContext";
|
|
2
|
+
|
|
1
3
|
export type CounterProps = {
|
|
2
4
|
total: number;
|
|
3
5
|
itemsLength: number;
|
|
4
6
|
};
|
|
5
7
|
|
|
6
|
-
export const Counter = ({ total, itemsLength }: CounterProps) =>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
export const Counter = ({ total, itemsLength }: CounterProps) => {
|
|
9
|
+
const { t } = useLocalization();
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<span data-fs-bp-paginator-counter>
|
|
13
|
+
{t("shared.pagination.counter", [itemsLength, total])}
|
|
14
|
+
</span>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Skeleton } from "@faststore/ui";
|
|
2
2
|
|
|
3
|
+
import { useLocalization } from "../../localization/LocalizationContext";
|
|
4
|
+
|
|
3
5
|
const DEFAULT_PAGE_SIZE = 25;
|
|
4
6
|
|
|
5
7
|
export type IntervalProps = {
|
|
@@ -17,6 +19,7 @@ export const Interval = ({
|
|
|
17
19
|
pageSize = DEFAULT_PAGE_SIZE,
|
|
18
20
|
isLoading = false,
|
|
19
21
|
}: IntervalProps) => {
|
|
22
|
+
const { t } = useLocalization();
|
|
20
23
|
const fromIndex = page - 1;
|
|
21
24
|
const from = itemsLength > 0 ? Math.min(total, fromIndex * pageSize + 1) : 0;
|
|
22
25
|
const to =
|
|
@@ -27,9 +30,7 @@ export const Interval = ({
|
|
|
27
30
|
{isLoading ? (
|
|
28
31
|
<Skeleton size={{ height: ".75rem", width: "5.5rem" }} />
|
|
29
32
|
) : (
|
|
30
|
-
|
|
31
|
-
{from} to {to} of {total}
|
|
32
|
-
</>
|
|
33
|
+
t("shared.pagination.interval", [from, to, total])
|
|
33
34
|
)}
|
|
34
35
|
</span>
|
|
35
36
|
);
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import type { ComponentProps } from "react";
|
|
2
2
|
|
|
3
|
+
import { useLocalization } from "../../localization/LocalizationContext";
|
|
4
|
+
|
|
3
5
|
export type NextPageButtonProps = ComponentProps<"button">;
|
|
4
6
|
|
|
5
7
|
export const NextPageButton = ({
|
|
6
8
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7
9
|
type = "button",
|
|
8
|
-
children
|
|
10
|
+
children,
|
|
9
11
|
...otherProps
|
|
10
12
|
}: NextPageButtonProps) => {
|
|
13
|
+
const { t } = useLocalization();
|
|
14
|
+
|
|
11
15
|
return (
|
|
12
16
|
<button data-fs-paginator-next-page-button type="button" {...otherProps}>
|
|
13
|
-
{children}
|
|
17
|
+
{children ?? t("shared.pagination.nextPage")}
|
|
14
18
|
</button>
|
|
15
19
|
);
|
|
16
20
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
3
|
import { useBuyerPortal } from "../../hooks";
|
|
4
|
+
import { useLocalization } from "../../localization/LocalizationContext";
|
|
4
5
|
import { BasicDrawer, type BasicDrawerProps } from "../BasicDrawer/BasicDrawer";
|
|
5
6
|
|
|
6
7
|
import {
|
|
@@ -38,8 +39,8 @@ export const SettingsDrawer = ({
|
|
|
38
39
|
title,
|
|
39
40
|
subtitle,
|
|
40
41
|
children,
|
|
41
|
-
primaryButtonLabel
|
|
42
|
-
secondaryButtonLabel
|
|
42
|
+
primaryButtonLabel,
|
|
43
|
+
secondaryButtonLabel,
|
|
43
44
|
onPrimaryAction,
|
|
44
45
|
onSecondaryAction,
|
|
45
46
|
isPrimaryButtonLoading = false,
|
|
@@ -52,6 +53,7 @@ export const SettingsDrawer = ({
|
|
|
52
53
|
onDismiss,
|
|
53
54
|
...otherProps
|
|
54
55
|
}: SettingsDrawerProps) => {
|
|
56
|
+
const { t } = useLocalization();
|
|
55
57
|
const { clientContext, currentOrgUnit, currentContract } = useBuyerPortal();
|
|
56
58
|
|
|
57
59
|
const resolvedCustomerId =
|
|
@@ -87,7 +89,7 @@ export const SettingsDrawer = ({
|
|
|
87
89
|
onClick={onSecondaryAction || handleClose}
|
|
88
90
|
disabled={isSecondaryButtonDisabled}
|
|
89
91
|
>
|
|
90
|
-
{secondaryButtonLabel}
|
|
92
|
+
{secondaryButtonLabel ?? t("shared.buttons.cancel")}
|
|
91
93
|
</BasicDrawer.Button>
|
|
92
94
|
<BasicDrawer.Button
|
|
93
95
|
variant="confirm"
|
|
@@ -95,7 +97,7 @@ export const SettingsDrawer = ({
|
|
|
95
97
|
isLoading={isPrimaryButtonLoading}
|
|
96
98
|
disabled={isPrimaryButtonDisabled}
|
|
97
99
|
>
|
|
98
|
-
{primaryButtonLabel}
|
|
100
|
+
{primaryButtonLabel ?? t("shared.buttons.save")}
|
|
99
101
|
</BasicDrawer.Button>
|
|
100
102
|
</BasicDrawer.Footer>
|
|
101
103
|
</BasicDrawer>
|
|
@@ -3,26 +3,26 @@ import React, { useState } from "react";
|
|
|
3
3
|
import { RadioGroup, RadioOption, Skeleton } from "@faststore/ui";
|
|
4
4
|
|
|
5
5
|
import { useGetScopeConfig } from "../../hooks";
|
|
6
|
+
import { useLocalization } from "../../localization/LocalizationContext";
|
|
6
7
|
|
|
7
8
|
import { useSettingsDrawerContext } from "./SettingsDrawerContext";
|
|
8
9
|
|
|
9
10
|
export type ListTypeOption = {
|
|
10
11
|
value: string;
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
labelKey: string;
|
|
13
|
+
descriptionKey: string;
|
|
13
14
|
};
|
|
14
15
|
|
|
15
16
|
export const DEFAULT_LIST_TYPE_OPTIONS: ListTypeOption[] = [
|
|
16
17
|
{
|
|
17
18
|
value: "custom",
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
labelKey: "shared.labels.customList",
|
|
20
|
+
descriptionKey: "shared.messages.customListDescription",
|
|
20
21
|
},
|
|
21
22
|
{
|
|
22
23
|
value: "sync",
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"Use the shared list defined by the contract. Updates are automatic.",
|
|
24
|
+
labelKey: "shared.labels.sharedList",
|
|
25
|
+
descriptionKey: "shared.messages.sharedListDescription",
|
|
26
26
|
},
|
|
27
27
|
];
|
|
28
28
|
|
|
@@ -43,6 +43,7 @@ export const SettingsDrawerListType = ({
|
|
|
43
43
|
onChange: controlledOnChange,
|
|
44
44
|
disabled = false,
|
|
45
45
|
}: SettingsDrawerListTypeProps) => {
|
|
46
|
+
const { t } = useLocalization();
|
|
46
47
|
const { scopeName, customerId, unitId } = useSettingsDrawerContext();
|
|
47
48
|
const [internalValue, setInternalValue] = useState<"sync" | "custom">(
|
|
48
49
|
"custom"
|
|
@@ -94,14 +95,14 @@ export const SettingsDrawerListType = ({
|
|
|
94
95
|
<div key={option.value} data-fs-bp-settings-drawer-list-type-option>
|
|
95
96
|
<RadioOption
|
|
96
97
|
value={option.value}
|
|
97
|
-
label={option.
|
|
98
|
+
label={t(option.labelKey)}
|
|
98
99
|
name={name}
|
|
99
100
|
disabled={disabled || isLoading}
|
|
100
101
|
>
|
|
101
|
-
{option.
|
|
102
|
+
{t(option.labelKey)}
|
|
102
103
|
</RadioOption>
|
|
103
104
|
<p data-fs-bp-settings-drawer-list-type-description>
|
|
104
|
-
{option.
|
|
105
|
+
{t(option.descriptionKey)}
|
|
105
106
|
</p>
|
|
106
107
|
</div>
|
|
107
108
|
))}
|
|
@@ -3,21 +3,24 @@ import {
|
|
|
3
3
|
type ListTypeOption,
|
|
4
4
|
} from "./SettingsDrawerListType";
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
`Manage a unique list of ${entityPlural} for this organization.`;
|
|
6
|
+
import type { LocalizeFn } from "../../localization/types";
|
|
8
7
|
|
|
9
|
-
export const
|
|
10
|
-
|
|
8
|
+
export const getCustomListDescription = (entityPlural: string, t: LocalizeFn) =>
|
|
9
|
+
t("shared.messages.customListDescription", [entityPlural]);
|
|
10
|
+
|
|
11
|
+
export const getSharedListDescription = (entityPlural: string, t: LocalizeFn) =>
|
|
12
|
+
t("shared.messages.sharedListDescription", [entityPlural]);
|
|
11
13
|
|
|
12
14
|
export const createListTypeOptions = (
|
|
13
|
-
entityPlural: string
|
|
15
|
+
entityPlural: string,
|
|
16
|
+
t: LocalizeFn
|
|
14
17
|
): ListTypeOption[] => [
|
|
15
18
|
{
|
|
16
19
|
...DEFAULT_LIST_TYPE_OPTIONS[0],
|
|
17
|
-
|
|
20
|
+
descriptionKey: getCustomListDescription(entityPlural, t),
|
|
18
21
|
},
|
|
19
22
|
{
|
|
20
23
|
...DEFAULT_LIST_TYPE_OPTIONS[1],
|
|
21
|
-
|
|
24
|
+
descriptionKey: getSharedListDescription(entityPlural, t),
|
|
22
25
|
},
|
|
23
26
|
];
|
|
@@ -7,7 +7,8 @@ import {
|
|
|
7
7
|
DropdownItem,
|
|
8
8
|
} from "@faststore/ui";
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import { useLocalization } from "../../localization/LocalizationContext";
|
|
11
|
+
import { sortingOptions, sortingOptionI18nKeys } from "../../utils";
|
|
11
12
|
import { Icon } from "../Icon";
|
|
12
13
|
|
|
13
14
|
type SortFilterProps = {
|
|
@@ -19,20 +20,26 @@ const SortFilter = ({
|
|
|
19
20
|
updateSort,
|
|
20
21
|
options = Object.keys(sortingOptions),
|
|
21
22
|
}: SortFilterProps) => {
|
|
22
|
-
const
|
|
23
|
+
const { t } = useLocalization();
|
|
24
|
+
|
|
25
|
+
const getLabel = (option: string) =>
|
|
26
|
+
sortingOptionI18nKeys[option] ? t(sortingOptionI18nKeys[option]) : option;
|
|
23
27
|
|
|
24
|
-
const
|
|
25
|
-
setCurrentSort(newSort);
|
|
28
|
+
const [currentSort, setCurrentSort] = useState(options[0]);
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
const updateCurrentSort = (option: string) => {
|
|
31
|
+
setCurrentSort(option);
|
|
32
|
+
updateSort(option);
|
|
28
33
|
};
|
|
29
34
|
|
|
30
35
|
return (
|
|
31
36
|
<div data-fs-buyer-portal-sort-filter>
|
|
32
|
-
<span data-fs-buyer-portal-sort-filter-label>
|
|
37
|
+
<span data-fs-buyer-portal-sort-filter-label>
|
|
38
|
+
{t("shared.labels.sortBy")}
|
|
39
|
+
</span>
|
|
33
40
|
<Dropdown>
|
|
34
41
|
<DropdownButton data-fs-buyer-portal-sort-filter-current>
|
|
35
|
-
{currentSort}{" "}
|
|
42
|
+
{getLabel(currentSort)}{" "}
|
|
36
43
|
<Icon
|
|
37
44
|
name="Down"
|
|
38
45
|
width={12}
|
|
@@ -48,7 +55,7 @@ const SortFilter = ({
|
|
|
48
55
|
key={option}
|
|
49
56
|
onClick={() => updateCurrentSort(option)}
|
|
50
57
|
>
|
|
51
|
-
{option}
|
|
58
|
+
{getLabel(option)}
|
|
52
59
|
</DropdownItem>
|
|
53
60
|
))}
|
|
54
61
|
</DropdownMenu>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
|
|
3
3
|
import { Dropdown } from "@faststore/components";
|
|
4
|
+
import { useLink_unstable as useLink } from "@faststore/core/experimental";
|
|
5
|
+
import { Link } from "@faststore/ui";
|
|
4
6
|
|
|
5
7
|
import { BasicDropdownMenu } from "../../BasicDropdownMenu/BasicDropdownMenu";
|
|
6
8
|
import { Icon } from "../../Icon";
|
|
@@ -37,6 +39,8 @@ export const TableRow = ({
|
|
|
37
39
|
prependColumns,
|
|
38
40
|
...otherProps
|
|
39
41
|
}: TableRowProps) => {
|
|
42
|
+
const { resolveLink } = useLink();
|
|
43
|
+
|
|
40
44
|
const classNames = () => {
|
|
41
45
|
const classes: string[] = [];
|
|
42
46
|
|
|
@@ -100,7 +104,7 @@ export const TableRow = ({
|
|
|
100
104
|
</Table.Cell>
|
|
101
105
|
{href && (
|
|
102
106
|
<Table.Cell data-fs-bp-table-row-link>
|
|
103
|
-
<
|
|
107
|
+
<Link href={resolveLink(href)} onClick={onClick} />
|
|
104
108
|
</Table.Cell>
|
|
105
109
|
)}
|
|
106
110
|
</tr>
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import React, { type ReactNode } from "react";
|
|
2
2
|
|
|
3
|
-
import Link from "next/link";
|
|
4
3
|
import { useRouter } from "next/router";
|
|
5
4
|
|
|
5
|
+
import { useLink_unstable as useLink } from "@faststore/core/experimental";
|
|
6
|
+
import { Link } from "@faststore/ui";
|
|
7
|
+
|
|
6
8
|
export type VerticalNavLinkProps = {
|
|
7
9
|
children: ReactNode;
|
|
8
10
|
link: string;
|
|
@@ -24,13 +26,15 @@ export const VerticalNavLink = ({
|
|
|
24
26
|
depth = 0,
|
|
25
27
|
}: VerticalNavLinkProps) => {
|
|
26
28
|
const { asPath } = useRouter();
|
|
29
|
+
const { resolveLink } = useLink();
|
|
30
|
+
const resolvedLink = resolveLink(link);
|
|
27
31
|
|
|
28
32
|
const isActive = isActiveLink(asPath, link);
|
|
29
33
|
|
|
30
34
|
return (
|
|
31
|
-
<li key={
|
|
35
|
+
<li key={resolvedLink} data-fs-vertical-nav-menu-item>
|
|
32
36
|
<Link
|
|
33
|
-
href={
|
|
37
|
+
href={resolvedLink}
|
|
34
38
|
data-fs-vertical-nav-menu-link
|
|
35
39
|
data-fs-vertical-nav-menu-link-is-active={isActive}
|
|
36
40
|
style={
|
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import dynamic from "next/dynamic";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { useLink_unstable as useLink } from "@faststore/core/experimental";
|
|
6
|
+
import {
|
|
7
|
+
Dropdown,
|
|
8
|
+
DropdownMenu,
|
|
9
|
+
IconButton,
|
|
10
|
+
Link,
|
|
11
|
+
Skeleton,
|
|
12
|
+
} from "@faststore/ui";
|
|
13
|
+
|
|
14
|
+
const LocalizationButton = dynamic(
|
|
15
|
+
() =>
|
|
16
|
+
import("@faststore/core/experimental").then(
|
|
17
|
+
(m) => m.LocalizationButton_unstable
|
|
18
|
+
),
|
|
19
|
+
{ ssr: false }
|
|
20
|
+
);
|
|
6
21
|
|
|
7
22
|
import { OrgUnitBreadcrumb } from "../../../org-units/components";
|
|
8
23
|
import { ProfileSummary } from "../../../profile/components";
|
|
9
24
|
import { BasicDropdownMenu } from "../../components";
|
|
10
25
|
import { Icon } from "../../components/Icon";
|
|
11
26
|
import { useDrawerProps } from "../../hooks";
|
|
27
|
+
import { useLocalization } from "../../localization/LocalizationContext";
|
|
12
28
|
import { doLogout } from "../../utils";
|
|
13
29
|
|
|
14
30
|
import { AboutDrawer } from "./about-drawer/AboutDrawer";
|
|
@@ -38,6 +54,8 @@ export const Navbar = ({
|
|
|
38
54
|
contractId = "",
|
|
39
55
|
...otherProps
|
|
40
56
|
}: NavbarProps) => {
|
|
57
|
+
const { t } = useLocalization();
|
|
58
|
+
const { resolveLink } = useLink();
|
|
41
59
|
const {
|
|
42
60
|
open: openSidebarMenu,
|
|
43
61
|
isOpen: isOpenSidebarMenuDrawerOpen,
|
|
@@ -76,12 +94,18 @@ export const Navbar = ({
|
|
|
76
94
|
/>
|
|
77
95
|
)}
|
|
78
96
|
<div data-fs-bp-nav-menu-actions>
|
|
97
|
+
<LocalizationButton
|
|
98
|
+
saveLabel={t("shared.buttons.save")}
|
|
99
|
+
currencyLabel={t("layouts.labels.currency")}
|
|
100
|
+
languageLabel={t("layouts.labels.language")}
|
|
101
|
+
icon="Globe"
|
|
102
|
+
/>
|
|
79
103
|
<Link
|
|
80
|
-
href="/"
|
|
104
|
+
href={resolveLink("/")}
|
|
81
105
|
target="_blank"
|
|
82
106
|
data-fs-bp-nav-menu-start-shopping-link
|
|
83
107
|
>
|
|
84
|
-
|
|
108
|
+
{t("layouts.navigation.startShopping")}
|
|
85
109
|
</Link>
|
|
86
110
|
|
|
87
111
|
<IconButton
|
|
@@ -2,6 +2,7 @@ import { Skeleton } from "@faststore/ui";
|
|
|
2
2
|
|
|
3
3
|
import { BasicDrawer, type BasicDrawerProps } from "../../../components";
|
|
4
4
|
import { useGetDependenciesVersion } from "../../../hooks";
|
|
5
|
+
import { useLocalization } from "../../../localization/LocalizationContext";
|
|
5
6
|
import { CURRENT_VERSION } from "../../../utils/constants";
|
|
6
7
|
|
|
7
8
|
export type AboutDrawerProps = Omit<BasicDrawerProps, "children"> & {
|
|
@@ -16,6 +17,7 @@ export const AboutDrawer = ({
|
|
|
16
17
|
contractId = "",
|
|
17
18
|
...props
|
|
18
19
|
}: AboutDrawerProps) => {
|
|
20
|
+
const { t } = useLocalization();
|
|
19
21
|
const { dependenciesVersion, isDependenciesVersionLoading } =
|
|
20
22
|
useGetDependenciesVersion(unitId);
|
|
21
23
|
|
|
@@ -26,16 +28,20 @@ export const AboutDrawer = ({
|
|
|
26
28
|
{...props}
|
|
27
29
|
data-fs-slide-over-direction="rightSide"
|
|
28
30
|
>
|
|
29
|
-
<BasicDrawer.Heading title="
|
|
31
|
+
<BasicDrawer.Heading title={t("layouts.drawers.about")} onClose={close} />
|
|
30
32
|
<BasicDrawer.Body data-bp-about-menu-drawer-body>
|
|
31
33
|
<div data-fs-bp-about-information>
|
|
32
|
-
<p data-fs-bp-about-information-title>
|
|
34
|
+
<p data-fs-bp-about-information-title>
|
|
35
|
+
{t("layouts.titles.versionDetails")}
|
|
36
|
+
</p>
|
|
33
37
|
{isDependenciesVersionLoading ? (
|
|
34
38
|
<Skeleton size={{ width: "100%", height: "3.5rem" }} />
|
|
35
39
|
) : (
|
|
36
40
|
<>
|
|
37
41
|
<div data-fs-bp-about-row>
|
|
38
|
-
<span data-fs-bp-about-row-label>
|
|
42
|
+
<span data-fs-bp-about-row-label>
|
|
43
|
+
{t("layouts.labels.organizationAccount")}
|
|
44
|
+
</span>
|
|
39
45
|
<span data-fs-bp-about-row-value>{CURRENT_VERSION}</span>
|
|
40
46
|
</div>
|
|
41
47
|
{dependenciesVersion &&
|
|
@@ -55,11 +61,15 @@ export const AboutDrawer = ({
|
|
|
55
61
|
)}
|
|
56
62
|
</div>
|
|
57
63
|
<div data-fs-bp-about-information>
|
|
58
|
-
<p data-fs-bp-about-information-title>
|
|
64
|
+
<p data-fs-bp-about-information-title>
|
|
65
|
+
{t("layouts.titles.navigationDetails")}
|
|
66
|
+
</p>
|
|
59
67
|
{!!contractId && (
|
|
60
68
|
<>
|
|
61
69
|
<div data-fs-bp-about-row data-fs-bp-about-row-contract-id>
|
|
62
|
-
<span data-fs-bp-about-row-label>
|
|
70
|
+
<span data-fs-bp-about-row-label>
|
|
71
|
+
{t("layouts.labels.contractId")}
|
|
72
|
+
</span>
|
|
63
73
|
<span data-fs-bp-about-row-value>{contractId}</span>
|
|
64
74
|
</div>
|
|
65
75
|
</>
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
@import "./sidebar-drawer/sidebar-drawer.scss";
|
|
3
3
|
|
|
4
4
|
[data-fs-bp-base-tabs-layout] {
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
display: grid;
|
|
7
7
|
grid-template-rows: auto 1fr;
|
|
8
8
|
height: 100vh;
|
|
9
9
|
overflow: hidden;
|
|
10
10
|
|
|
11
|
-
[data-fs-bp-nav] {
|
|
11
|
+
[data-fs-bp-nav] {
|
|
12
12
|
display: flex;
|
|
13
13
|
justify-content: space-between;
|
|
14
14
|
align-items: center;
|
|
@@ -22,11 +22,21 @@
|
|
|
22
22
|
padding-right: var(--fs-bp-padding-10);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
[data-fs-localization-button] {
|
|
26
|
+
[data-fs-button-wrapper] {
|
|
27
|
+
span {
|
|
28
|
+
display: inline-flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
gap: var(--fs-bp-gap-3);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
25
35
|
[data-fs-bp-breadcrumb-nav] {
|
|
26
36
|
[data-fs-bp-breadcrumb-current],
|
|
27
37
|
[data-fs-bp-breadcrumb-dropdown-trigger] {
|
|
28
38
|
font-size: var(--fs-bp-text-body);
|
|
29
|
-
|
|
39
|
+
|
|
30
40
|
@include u.media(">=phonemid") {
|
|
31
41
|
font-size: var(--fs-bp-text-body-big);
|
|
32
42
|
}
|
|
@@ -79,25 +89,25 @@
|
|
|
79
89
|
|
|
80
90
|
[data-fs-bp-nav-menu-start-shopping-link] {
|
|
81
91
|
display: none;
|
|
82
|
-
|
|
92
|
+
|
|
83
93
|
padding: var(--fs-bp-padding-0) var(--fs-bp-padding-5);
|
|
84
94
|
@include text-style('action');
|
|
85
95
|
color: var(--fs-bp-color-neutral-8);
|
|
86
96
|
border-radius: var(--fs-bp-border-radius-full);
|
|
87
|
-
|
|
97
|
+
|
|
88
98
|
height: var(--fs-bp-spacing-9);
|
|
89
99
|
justify-content: center;
|
|
90
100
|
align-items: center;
|
|
91
101
|
text-decoration: none;
|
|
92
|
-
|
|
102
|
+
|
|
93
103
|
&:hover {
|
|
94
104
|
background-color: var(--fs-bp-color-transparent-0);
|
|
95
105
|
}
|
|
96
|
-
|
|
106
|
+
|
|
97
107
|
&:active {
|
|
98
108
|
background-color: var(--fs-bp-color-transparent-1);
|
|
99
109
|
}
|
|
100
|
-
|
|
110
|
+
|
|
101
111
|
@include u.media(">=tablet") {
|
|
102
112
|
display: inline-flex;
|
|
103
113
|
}
|
|
@@ -135,7 +145,7 @@
|
|
|
135
145
|
|
|
136
146
|
[data-fs-vertical-nav-menu] {
|
|
137
147
|
margin-bottom: var(--fs-bp-padding-5);
|
|
138
|
-
|
|
148
|
+
|
|
139
149
|
[data-fs-vertical-nav-menu-org-wrapper] {
|
|
140
150
|
[data-fs-vertical-nav-menu-org-name] {
|
|
141
151
|
@include text-style('emphasis');
|
|
@@ -165,3 +175,8 @@
|
|
|
165
175
|
}
|
|
166
176
|
}
|
|
167
177
|
}
|
|
178
|
+
|
|
179
|
+
// !important para vencer a especificidade do CSS module do selector (portal).
|
|
180
|
+
[data-fs-localization-selector] {
|
|
181
|
+
--fs-localization-selector-max-width: 20rem !important;
|
|
182
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import storeConfig from "discovery.config";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { useLink_unstable as useLink } from "@faststore/core/experimental";
|
|
4
|
+
import { Link } from "@faststore/ui";
|
|
4
5
|
|
|
5
6
|
import { BasicDrawer, type BasicDrawerProps } from "../../../components";
|
|
6
7
|
import { SidebarMenu } from "../SidebarMenu";
|
|
@@ -17,6 +18,8 @@ export const SidebarDrawer = ({
|
|
|
17
18
|
close,
|
|
18
19
|
...props
|
|
19
20
|
}: SidebarDrawerProps) => {
|
|
21
|
+
const { resolveLink } = useLink();
|
|
22
|
+
|
|
20
23
|
return (
|
|
21
24
|
<BasicDrawer
|
|
22
25
|
data-bp-sidebar-menu
|
|
@@ -27,7 +30,7 @@ export const SidebarDrawer = ({
|
|
|
27
30
|
>
|
|
28
31
|
<BasicDrawer.Heading
|
|
29
32
|
title={
|
|
30
|
-
<Link href="/" data-fs-bp-org-unit-details-navbar-link>
|
|
33
|
+
<Link href={resolveLink("/")} data-fs-bp-org-unit-details-navbar-link>
|
|
31
34
|
{storeConfig.seo.title}
|
|
32
35
|
</Link>
|
|
33
36
|
}
|
|
@@ -5,6 +5,7 @@ import { DropdownItem } from "@faststore/ui";
|
|
|
5
5
|
import { OrgUnitDetailsNavbar } from "../../../org-units/components";
|
|
6
6
|
import { Icon } from "../../components";
|
|
7
7
|
import { useBuyerPortal, useReloadOnBfcacheRestore } from "../../hooks";
|
|
8
|
+
import { useLocalization } from "../../localization/LocalizationContext";
|
|
8
9
|
import { getContractSettingsLinks } from "../../utils";
|
|
9
10
|
import { BaseTabsLayout } from "../BaseTabsLayout/BaseTabsLayout";
|
|
10
11
|
import { SumaSidebar } from "../SumaPageLayout/SumaSidebar";
|
|
@@ -28,6 +29,7 @@ export const ContractTabsLayout = ({
|
|
|
28
29
|
}: ContractTabsLayoutProps) => {
|
|
29
30
|
const { currentOrgUnit, currentUser, currentContract, featureFlags } =
|
|
30
31
|
useBuyerPortal();
|
|
32
|
+
const { t } = useLocalization();
|
|
31
33
|
|
|
32
34
|
useReloadOnBfcacheRestore();
|
|
33
35
|
|
|
@@ -67,10 +69,13 @@ export const ContractTabsLayout = ({
|
|
|
67
69
|
);
|
|
68
70
|
}
|
|
69
71
|
|
|
70
|
-
const verticalLinks = getContractSettingsLinks(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
const verticalLinks = getContractSettingsLinks(
|
|
73
|
+
{
|
|
74
|
+
contractId: resolvedContractId,
|
|
75
|
+
orgUnitId: resolvedOrgUnitId,
|
|
76
|
+
},
|
|
77
|
+
t
|
|
78
|
+
);
|
|
74
79
|
|
|
75
80
|
return (
|
|
76
81
|
<BaseTabsLayout data-fs-bp-contract-tabs-layout>
|
|
@@ -91,7 +96,7 @@ export const ContractTabsLayout = ({
|
|
|
91
96
|
dropdownOptions={
|
|
92
97
|
<DropdownItem>
|
|
93
98
|
<Icon name="DoNotDisturbOn" width={20} height={20} />
|
|
94
|
-
|
|
99
|
+
{t("layouts.actions.removeFromUnit")}
|
|
95
100
|
</DropdownItem>
|
|
96
101
|
}
|
|
97
102
|
verticalLinks={verticalLinks}
|