diff --git a/apps/address-service/package.json b/apps/address-service/package.json index 5939976fdf1..af28fad5662 100644 --- a/apps/address-service/package.json +++ b/apps/address-service/package.json @@ -92,6 +92,6 @@ "jest-jasmine2": "^29.7.0", "jest-watch-typeahead": "^0.6.1", "pluralize": "^8.0.0", - "typescript": "^4.9.5" + "typescript": "^5.5.4" } } diff --git a/apps/address-service/tsconfig.json b/apps/address-service/tsconfig.json index 62758034ab8..fdfe1a086ba 100644 --- a/apps/address-service/tsconfig.json +++ b/apps/address-service/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "ES6", "lib": [ "dom", "dom.iterable", diff --git a/apps/announcement-generator b/apps/announcement-generator index b80a121945b..59df3077638 160000 --- a/apps/announcement-generator +++ b/apps/announcement-generator @@ -1 +1 @@ -Subproject commit b80a121945ba71e0c899a4a40d2652fbbda617d3 +Subproject commit 59df3077638a38a755eeb0314a4742a1f4d67a46 diff --git a/apps/asterix_bot b/apps/asterix_bot index 9d487e1798d..0056f4da895 160000 --- a/apps/asterix_bot +++ b/apps/asterix_bot @@ -1 +1 @@ -Subproject commit 9d487e1798dbc67bb46601d2da90ba1b29cb72ea +Subproject commit 0056f4da8956b961248354a1a81e61e5ff6ada5f diff --git a/apps/callcenter b/apps/callcenter index e53814a0649..6633630f538 160000 --- a/apps/callcenter +++ b/apps/callcenter @@ -1 +1 @@ -Subproject commit e53814a06497ea2fa6bea4d4e8f6c3a7ee013aa9 +Subproject commit 6633630f53855f9b34f8c68ea64e7ae031fe9943 diff --git a/apps/condo-news-sharing-greendom b/apps/condo-news-sharing-greendom index 1e2755dc1de..61600cdcd38 160000 --- a/apps/condo-news-sharing-greendom +++ b/apps/condo-news-sharing-greendom @@ -1 +1 @@ -Subproject commit 1e2755dc1def650ae9d2d57e9f8b139f2482d5a4 +Subproject commit 61600cdcd38bec5a78b8fbfbd1f9da2d41c49d59 diff --git a/apps/condo/admin-ui/index.js b/apps/condo/admin-ui/index.js index bd4223a4836..a286284129b 100644 --- a/apps/condo/admin-ui/index.js +++ b/apps/condo/admin-ui/index.js @@ -1,4 +1,3 @@ -// @ts-ignore import { UserSwitchOutlined } from '@ant-design/icons' import { useMutation, gql } from '@apollo/client' import { ItemId, AddNewItem } from '@keystonejs/app-admin-ui/components' diff --git a/apps/condo/domains/acquiring/components/AcquiringReceipt.tsx b/apps/condo/domains/acquiring/components/AcquiringReceipt.tsx index 9a75ca020da..eb6e840b7f4 100644 --- a/apps/condo/domains/acquiring/components/AcquiringReceipt.tsx +++ b/apps/condo/domains/acquiring/components/AcquiringReceipt.tsx @@ -1,3 +1,4 @@ +import { MultiPaymentStatusType } from '@app/condo/schema' import styled from '@emotion/styled' import { Col, Row, Typography } from 'antd' import Big from 'big.js' @@ -9,12 +10,6 @@ import React, { useEffect, useRef } from 'react' import { useIntl } from '@open-condo/next/intl' -import { - MULTIPAYMENT_DONE_STATUS, - MULTIPAYMENT_ERROR_STATUS, - MULTIPAYMENT_PROCESSING_STATUS, - MULTIPAYMENT_WITHDRAWN_STATUS, -} from '@condo/domains/acquiring/constants/payment' import { colors } from '@condo/domains/common/constants/style' import { createWrappedPdf } from '@condo/domains/common/utils/pdf' @@ -66,7 +61,7 @@ interface IAcquiringReceiptProps { paymentDateTime: string, documentNumber: string, documentTitle: string, - status: MULTIPAYMENT_DONE_STATUS | MULTIPAYMENT_ERROR_STATUS | MULTIPAYMENT_PROCESSING_STATUS | MULTIPAYMENT_WITHDRAWN_STATUS, + status: MultiPaymentStatusType, payerInfo: Array, totalSum: { amountWithExplicits: string, @@ -412,15 +407,15 @@ export const AcquiringReceipt: React.FC = (props) => { const intl = useIntl() let statusMessage = intl.formatMessage({ id: 'MultiPayment.status.DONE' }) - if (status === MULTIPAYMENT_PROCESSING_STATUS) { + if (status === MultiPaymentStatusType.Processing) { statusMessage = intl.formatMessage({ id: 'MultiPayment.status.PROCESSING' }) - } else if (status === MULTIPAYMENT_ERROR_STATUS) { + } else if (status === MultiPaymentStatusType.Error) { statusMessage = intl.formatMessage({ id: 'MultiPayment.status.ERROR' }) } let statusColor = STATUS_SUCCESS_COLOR - if (status === MULTIPAYMENT_PROCESSING_STATUS) { + if (status === MultiPaymentStatusType.Processing) { statusColor = STATUS_PROCESSING_COLOR - } else if (status === MULTIPAYMENT_ERROR_STATUS) { + } else if (status === MultiPaymentStatusType.Error) { statusColor = STATUS_ERROR_COLOR } const payerTitle = intl.formatMessage({ id: 'acquiringReceipt.title' }) diff --git a/apps/condo/domains/billing/components/BillingPageContent/PaymentsTab.tsx b/apps/condo/domains/billing/components/BillingPageContent/PaymentsTab.tsx index a8831470a4a..fc795eb5cb3 100644 --- a/apps/condo/domains/billing/components/BillingPageContent/PaymentsTab.tsx +++ b/apps/condo/domains/billing/components/BillingPageContent/PaymentsTab.tsx @@ -1,3 +1,4 @@ +import { PaymentStatusType } from '@app/condo/schema' import get from 'lodash/get' import React, { CSSProperties } from 'react' @@ -6,11 +7,11 @@ import { useOrganization } from '@open-condo/next/organization' import { Typography } from '@open-condo/ui' import PaymentsTable from '@condo/domains/acquiring/components/payments/PaymentsTable' -import { PAYMENT_DONE_STATUS, PAYMENT_WITHDRAWN_STATUS } from '@condo/domains/acquiring/constants/payment' import { Payment } from '@condo/domains/acquiring/utils/clientSchema' import { BasicEmptyListView } from '@condo/domains/common/components/EmptyListView' import { Loader } from '@condo/domains/common/components/Loader' + const SEARCHING_DINO_IMG = 'dino/searching@2x.png' const IMG_STYLES: CSSProperties = { marginBottom: 24 } const TEXT_GAP = 16 @@ -26,7 +27,7 @@ export const PaymentsTab: React.FC = () => { const { objs: anyPayments, loading: anyPaymentsLoading, error: anyPaymentsError } = Payment.useObjects({ where: { organization: { id: orgId }, - status_in: [PAYMENT_WITHDRAWN_STATUS, PAYMENT_DONE_STATUS], + status_in: [PaymentStatusType.Withdrawn, PaymentStatusType.Done], invoice_is_null: true, }, first: 1, diff --git a/apps/condo/domains/common/components/GraphQlSearchInputWithCheckAll.tsx b/apps/condo/domains/common/components/GraphQlSearchInputWithCheckAll.tsx index 40938f26b83..da71eca11c3 100644 --- a/apps/condo/domains/common/components/GraphQlSearchInputWithCheckAll.tsx +++ b/apps/condo/domains/common/components/GraphQlSearchInputWithCheckAll.tsx @@ -8,11 +8,10 @@ import React, { ComponentProps, useCallback, useEffect, useRef, useState } from import { useIntl } from '@open-condo/next/intl' -import { GraphQlSearchInputOption } from '@condo/domains/common/components/GraphQlSearchInput/GraphQlSearchInput' import { useValidations } from '@condo/domains/common/hooks/useValidations' import Checkbox from './antd/Checkbox' -import { GraphQlSearchInput } from './GraphQlSearchInput' +import { GraphQlSearchInputOption, GraphQlSearchInput } from './GraphQlSearchInput' export type InputWithCheckAllProps = { @@ -28,7 +27,7 @@ export type InputWithCheckAllProps = { disabled?: boolean checkboxDisabled?: boolean checkboxHidden?: boolean - onDataLoaded?: (data: GraphQlSearchInputOption['data']) => void + onDataLoaded?: (data: GraphQlSearchInputOption['data'], allDataLoaded: boolean) => void /** * When your form has a complex structure, for example when fields change dynamically, * you need to mutation the form yourself after the checkbox has been checked. diff --git a/apps/condo/domains/common/components/ImagesUploadList.tsx b/apps/condo/domains/common/components/ImagesUploadList.tsx index 32e70df1c0f..3b7dc39421e 100644 --- a/apps/condo/domains/common/components/ImagesUploadList.tsx +++ b/apps/condo/domains/common/components/ImagesUploadList.tsx @@ -225,7 +225,7 @@ export const ImagesUploadList: React.FC = ({ }) if (isFunction(onFilesChange)) { - onFilesChange(fileList) + onFilesChange(fileList as UploadFileType[]) } setFiles(fileList) diff --git a/apps/condo/domains/common/components/Import/Index.tsx b/apps/condo/domains/common/components/Import/Index.tsx index a8a0b5c0376..27a95c4bd8d 100644 --- a/apps/condo/domains/common/components/Import/Index.tsx +++ b/apps/condo/domains/common/components/Import/Index.tsx @@ -25,7 +25,7 @@ import { ActiveModalType, BaseImportWrapper, ExtraModalContentType } from './Bas export interface IImportWrapperProps { accessCheck: boolean - onFinish: (variables: unknown) => void + onFinish?: () => void columns: Columns rowNormalizer: RowNormalizer rowValidator: RowValidator diff --git a/apps/condo/domains/common/components/SetupTelegramNotificationsBanner.ts b/apps/condo/domains/common/components/SetupTelegramNotificationsBanner.ts index 007f2b453b4..d91fb64c43c 100644 --- a/apps/condo/domains/common/components/SetupTelegramNotificationsBanner.ts +++ b/apps/condo/domains/common/components/SetupTelegramNotificationsBanner.ts @@ -1,6 +1,5 @@ import cookie from 'js-cookie' import get from 'lodash/get' -import isInteger from 'lodash/isInteger' import { useEffect } from 'react' import { useFeatureFlags } from '@open-condo/featureflags/FeatureFlagsContext' @@ -23,7 +22,9 @@ export const SetupTelegramNotificationsBanner = () => { const { useFlag, useFlagValue } = useFeatureFlags() const forceShowBanner = useFlag(SHOW_TELEGRAM_NOTIFICATIONS_BANNER) || false const maxEmployeeSizeFromFeatureFlag = useFlagValue(MAX_EMPLOYEE_SIZE_IN_ORGANIZATION_TO_TELEGRAM_NOTIFICATIONS) - const maxEmployeeSize = isInteger(maxEmployeeSizeFromFeatureFlag) ? maxEmployeeSizeFromFeatureFlag : DEFAULT_MAX_EMPLOYEE_SIZE + const maxEmployeeSize = typeof maxEmployeeSizeFromFeatureFlag === 'number' && Number.isInteger(maxEmployeeSizeFromFeatureFlag) + ? maxEmployeeSizeFromFeatureFlag + : DEFAULT_MAX_EMPLOYEE_SIZE const { count: employeeCount, loading: employeeLoading } = OrganizationEmployee.useCount({ where: { diff --git a/apps/condo/domains/common/components/Table/Filters.tsx b/apps/condo/domains/common/components/Table/Filters.tsx index b1c67aad724..76e89be081c 100644 --- a/apps/condo/domains/common/components/Table/Filters.tsx +++ b/apps/condo/domains/common/components/Table/Filters.tsx @@ -1,8 +1,9 @@ import { FilterFilled } from '@ant-design/icons' -import { FilterValue } from 'antd/es/table/interface' -import { CheckboxGroupProps } from 'antd/lib/checkbox/Group' -import { PickerProps, RangePickerProps } from 'antd/lib/date-picker/generatePicker' -import { FilterDropdownProps } from 'antd/lib/table/interface' +import styled from '@emotion/styled' +import { Space } from 'antd' +import { CheckboxGroupProps } from 'antd/es/checkbox/Group' +import { PickerProps, RangePickerProps } from 'antd/es/date-picker/generatePicker' +import { FilterValue, FilterDropdownProps } from 'antd/es/table/interface' import dayjs, { Dayjs } from 'dayjs' import get from 'lodash/get' import isArray from 'lodash/isArray' @@ -10,16 +11,18 @@ import isEmpty from 'lodash/isEmpty' import isFunction from 'lodash/isFunction' import React, { CSSProperties, useCallback, useMemo } from 'react' +import { useIntl } from '@open-condo/next/intl' + import Checkbox from '@condo/domains/common/components/antd/Checkbox' import Input, { CustomInputProps } from '@condo/domains/common/components/antd/Input' import Select, { CustomSelectProps, SelectValueType } from '@condo/domains/common/components/antd/Select' import { GraphQlSearchInput, ISearchInputProps } from '@condo/domains/common/components/GraphQlSearchInput' import DatePicker from '@condo/domains/common/components/Pickers/DatePicker' import DateRangePicker from '@condo/domains/common/components/Pickers/DateRangePicker' -import { FilterContainer, SelectFilterContainer } from '@condo/domains/common/components/TableFilter' import { colors } from '@condo/domains/common/constants/style' import { QueryArgType } from '@condo/domains/common/utils/tables.utils' +import { Button } from '../Button' import { TrackingEventType, useTracking } from '../TrackingContext' @@ -42,6 +45,72 @@ type GetDateFilterDropdownType = GetCommonFilterDropdownType<{ datePickerProps?: type GetDateRangeFilterDropdownType = GetCommonFilterDropdownType<{ datePickerProps?: RangePickerProps } & CommonFilterDropdownProps> +interface IFilterContainerProps { + clearFilters: () => void + showClearButton?: boolean + style?: CSSProperties +} + +const FILTER_CONTAINER_STYLES: CSSProperties = { padding: 16 } + +const handleStopPropagation = (e) => e.stopPropagation() + +const FilterContainer: React.FC = (props) => { + const { showClearButton, clearFilters, children } = props + const intl = useIntl() + const ResetLabel = intl.formatMessage({ id: 'filters.Reset' }) + + return ( +
+ + {children} + { + showClearButton && ( + + ) + } + +
+ ) +} + +const StyledSelectFilterContainer = styled.div` + padding: 16px; + display: flex; + flex-direction: column; + gap: 10px; + width: 300px; +` + +const SelectFilterContainer: React.FC = (props) => { + const { showClearButton, clearFilters, style, children } = props + const intl = useIntl() + const ResetLabel = intl.formatMessage({ id: 'filters.Reset' }) + + return ( + + {children} + { + showClearButton && ( + + ) + } + + ) +} + const FILTER_DROPDOWN_CHECKBOX_STYLES: CSSProperties = { display: 'flex', flexDirection: 'column' } diff --git a/apps/condo/domains/common/components/TableFilter.tsx b/apps/condo/domains/common/components/TableFilter.tsx index 06657133fe1..0ba47f9d05d 100644 --- a/apps/condo/domains/common/components/TableFilter.tsx +++ b/apps/condo/domains/common/components/TableFilter.tsx @@ -1,136 +1,12 @@ import { FilterFilled } from '@ant-design/icons' -import styled from '@emotion/styled' -import { Space } from 'antd' -import { CheckboxOptionType } from 'antd/es' -import { FilterDropdownProps } from 'antd/lib/table/interface' -import isFunction from 'lodash/isFunction' import React, { CSSProperties } from 'react' -import { useIntl } from '@open-condo/next/intl' - -import Checkbox from '@condo/domains/common/components/antd/Checkbox' -import Input from '@condo/domains/common/components/antd/Input' - -import { Button } from './Button' - import { colors } from '../constants/style' -export interface IFilterContainerProps { - clearFilters: () => void - showClearButton?: boolean - style?: CSSProperties -} - -const FILTER_CONTAINER_STYLES: CSSProperties = { padding: 16 } - -const handleStopPropagation = (e) => e.stopPropagation() - -export const FilterContainer: React.FC = (props) => { - const { showClearButton, clearFilters, children } = props - const intl = useIntl() - const ResetLabel = intl.formatMessage({ id: 'filters.Reset' }) - - return ( -
- - {children} - { - showClearButton && ( - - ) - } - -
- ) -} - -const StyledSelectFilterContainer = styled.div` - padding: 16px; - display: flex; - flex-direction: column; - gap: 10px; - width: 300px; -` - -export const SelectFilterContainer: React.FC = (props) => { - const { showClearButton, clearFilters, style, children } = props - const intl = useIntl() - const ResetLabel = intl.formatMessage({ id: 'filters.Reset' }) - - return ( - - {children} - { - showClearButton && ( - - ) - } - - ) -} - const STYLE_FILTERED: CSSProperties = { color: colors.sberPrimary[5] } const STYLE_NO_COLOR: CSSProperties = { color: undefined } +/** + * @deprecated use getFilterIcon from "apps/condo/domains/common/components/Table/Filters.tsx" + */ export const getFilterIcon = filtered => - -export const getTextFilterDropdown = (columnName: string, setFiltersApplied: React.Dispatch>) => { - const TextFilterDropdown = ({ setSelectedKeys, selectedKeys, confirm, clearFilters }: FilterDropdownProps) => ( - 0}> - { - if (isFunction(setSelectedKeys)) setSelectedKeys(e.target.value) - if (isFunction(setFiltersApplied)) setFiltersApplied(true) - if (isFunction(confirm)) confirm({ closeDropdown: false }) - }} - /> - - ) - - return TextFilterDropdown -} - -type CheckboxOptions = (string | CheckboxOptionType)[] - -const CHECKBOX_GROUP_STYLES: CSSProperties = { display: 'flex', flexDirection: 'column' } - -export const getCheckboxFilterDropdown = (columnName: string, setFiltersApplied: React.Dispatch>, options: CheckboxOptions) => { - const CheckboxFilterDropdown = ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => { - return ( - 0} - > - { - if (isFunction(setSelectedKeys)) setSelectedKeys(e) - if (isFunction(setFiltersApplied)) setFiltersApplied(true) - if (isFunction(confirm)) confirm({ closeDropdown: false }) - }} - /> - - ) - } - - return CheckboxFilterDropdown -} diff --git a/apps/condo/domains/common/components/containers/BaseLayout/Header.tsx b/apps/condo/domains/common/components/containers/BaseLayout/Header.tsx index 28f2b217e9b..50e0bd1ed32 100644 --- a/apps/condo/domains/common/components/containers/BaseLayout/Header.tsx +++ b/apps/condo/domains/common/components/containers/BaseLayout/Header.tsx @@ -1,3 +1,4 @@ +import { OrganizationTypeType, OrganizationWhereInput } from '@app/condo/schema' import { Layout } from 'antd' import get from 'lodash/get' import { useRouter } from 'next/router' @@ -13,16 +14,15 @@ import { Logo } from '@condo/domains/common/components/Logo' import { ResidentActions } from '@condo/domains/common/components/ResidentActions/ResidentActions' import { InlineOrganizationSelect } from '@condo/domains/organization/components/OrganizationSelect' import { SBBOLIndicator } from '@condo/domains/organization/components/SBBOLIndicator' -import { HOLDING_TYPE, MANAGING_COMPANY_TYPE, SERVICE_PROVIDER_TYPE } from '@condo/domains/organization/constants/common' +import { MANAGING_COMPANY_TYPE, SERVICE_PROVIDER_TYPE } from '@condo/domains/organization/constants/common' import { useOrganizationInvites } from '@condo/domains/organization/hooks/useOrganizationInvites' import { UserMenu } from '@condo/domains/user/components/UserMenu' import { ITopMenuItemsProps, TopMenuItems } from './components/TopMenuItems' -import type{ OrganizationWhereInput } from '@app/condo/schema' const ORGANIZATION_FILTER: OrganizationWhereInput = { - type_not: HOLDING_TYPE, + type_not: OrganizationTypeType.Holding, } interface IHeaderProps { diff --git a/apps/condo/domains/common/utils/excel.utils.ts b/apps/condo/domains/common/utils/excel.utils.ts index 180f78bd3ad..8cff7010974 100644 --- a/apps/condo/domains/common/utils/excel.utils.ts +++ b/apps/condo/domains/common/utils/excel.utils.ts @@ -1,4 +1,3 @@ -// @ts-ignore import XLSX from 'xlsx' function isValidEmail (email) { diff --git a/apps/condo/domains/common/utils/mutations.utils.js b/apps/condo/domains/common/utils/mutations.utils.ts similarity index 96% rename from apps/condo/domains/common/utils/mutations.utils.js rename to apps/condo/domains/common/utils/mutations.utils.ts index 8961a587412..acc927a4fc2 100644 --- a/apps/condo/domains/common/utils/mutations.utils.js +++ b/apps/condo/domains/common/utils/mutations.utils.ts @@ -1,9 +1,21 @@ import { notification } from 'antd' -import find from 'lodash/find' import get from 'lodash/get' import isFunction from 'lodash/isFunction' -import { NETWORK_ERROR } from '@condo/domains/common/constants/errors' + +type RunMutationProps = { + action? + mutation? + variables? + onCompleted? + onError? + onFinally? + intl? + form? + ErrorToFormFieldMsgMapping? + OnErrorMsg? + OnCompletedMsg? +} /** * Mapping of error codes to field errors @@ -49,7 +61,7 @@ import { NETWORK_ERROR } from '@condo/domains/common/constants/errors' * @param OnCompletedMsg * @return {*} */ -function runMutation ({ action, mutation, variables, onCompleted, onError, onFinally, intl, form, ErrorToFormFieldMsgMapping, OnErrorMsg, OnCompletedMsg }) { +function runMutation ({ action, mutation, variables, onCompleted, onError, onFinally, intl, form, ErrorToFormFieldMsgMapping, OnErrorMsg, OnCompletedMsg }: RunMutationProps) { if (!intl) throw new Error('intl prop required') if (!mutation && !action) throw new Error('mutation or action prop required') if (action && mutation) throw new Error('impossible to pass mutation and action prop') diff --git a/apps/condo/domains/contact/components/ContactsEditor/ContactOption.tsx b/apps/condo/domains/contact/components/ContactsEditor/ContactOption.tsx index 56f88013d30..7405d1e87f8 100644 --- a/apps/condo/domains/contact/components/ContactsEditor/ContactOption.tsx +++ b/apps/condo/domains/contact/components/ContactsEditor/ContactOption.tsx @@ -1,3 +1,4 @@ +import { Contact as ContactType } from '@app/condo/schema' import { Col, Row, Form, RowProps, FormItemProps } from 'antd' import React, { CSSProperties, useCallback } from 'react' @@ -7,11 +8,10 @@ import { Radio, Space } from '@open-condo/ui' import Input from '@condo/domains/common/components/antd/Input' import { useLayoutContext } from '@condo/domains/common/components/LayoutContext' import { PhoneInput } from '@condo/domains/common/components/PhoneInput' -import { Contact as TContact } from '@condo/domains/contact/schema' interface IContactFieldsDisplayProps { - contact: TContact, - onSelect: (contact: TContact) => void, + contact: ContactType, + onSelect: (contact: ContactType) => void, selected: boolean, contactFormItemProps?: FormItemProps disabled?: boolean diff --git a/apps/condo/domains/contact/components/ContactsEditor/NewContactFields.tsx b/apps/condo/domains/contact/components/ContactsEditor/NewContactFields.tsx index 419fba862a8..93e69e32ed7 100644 --- a/apps/condo/domains/contact/components/ContactsEditor/NewContactFields.tsx +++ b/apps/condo/domains/contact/components/ContactsEditor/NewContactFields.tsx @@ -1,3 +1,4 @@ +import { Contact as ContactType } from '@app/condo/schema' import styled from '@emotion/styled' import { AutoComplete, Col, Form, FormInstance, FormItemProps, InputProps, Row, RowProps } from 'antd' import get from 'lodash/get' @@ -16,17 +17,16 @@ import { SPECIAL_CHAR_REGEXP } from '@condo/domains/common/constants/regexps' import { colors } from '@condo/domains/common/constants/style' import { useValidations } from '@condo/domains/common/hooks/useValidations' import { normalizePhone } from '@condo/domains/common/utils/phone' -import { Contact as TContact } from '@condo/domains/contact/schema' import { CONTACT_TYPE, ContactValue, FieldsType } from './index' interface INewContactFieldsFieldsProps { - initialValueWithoutContact?: TContact, + initialValueWithoutContact?: Partial, onChange: (contact: ContactValue) => void, onChecked?: () => void, checked?: boolean, - contacts: TContact[], + contacts: ContactType[], displayMinusButton?: boolean, onClickMinusButton?: () => void, fields: FieldsType diff --git a/apps/condo/domains/contact/components/ContactsEditor/NotResidentFields.tsx b/apps/condo/domains/contact/components/ContactsEditor/NotResidentFields.tsx index 5d55930b86d..ee8165aad79 100644 --- a/apps/condo/domains/contact/components/ContactsEditor/NotResidentFields.tsx +++ b/apps/condo/domains/contact/components/ContactsEditor/NotResidentFields.tsx @@ -1,8 +1,9 @@ +import { OrganizationEmployee as OrganizationEmployeeType } from '@app/condo/schema' import styled from '@emotion/styled' import { AutoComplete, Col, Form, Row, RowProps } from 'antd' import { OptionProps } from 'antd/lib/mentions' -import { get } from 'lodash' import debounce from 'lodash/debounce' +import get from 'lodash/get' import { Rule } from 'rc-field-form/lib/interface' import React, { useCallback, useMemo, useState } from 'react' @@ -12,19 +13,19 @@ import { PhoneInput } from '@condo/domains/common/components/PhoneInput' import { SPECIAL_CHAR_REGEXP } from '@condo/domains/common/constants/regexps' import { colors } from '@condo/domains/common/constants/style' import { useValidations } from '@condo/domains/common/hooks/useValidations' -import { OrganizationEmployee } from '@condo/domains/contact/schema' import { CONTACT_TYPE, ContactValue } from './index' + const DEBOUNCE_TIMEOUT_IN_MS = 800 interface INotResidentFieldsFieldsProps { refetch, initialQuery?, - initialValue?: OrganizationEmployee, + initialValue?: Partial, onChange: (contact: ContactValue) => void, // Used for autocomplete - employees: OrganizationEmployee[], + employees: OrganizationEmployeeType[], activeTab: CONTACT_TYPE, } diff --git a/apps/condo/domains/contact/hooks/useContactRolesTableColumns.tsx b/apps/condo/domains/contact/hooks/useContactRolesTableColumns.tsx index 7c6714923f0..f0cfbc83d26 100644 --- a/apps/condo/domains/contact/hooks/useContactRolesTableColumns.tsx +++ b/apps/condo/domains/contact/hooks/useContactRolesTableColumns.tsx @@ -4,7 +4,7 @@ import { IntlShape } from 'react-intl/src/types' import { useIntl } from '@open-condo/next/intl' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' +import { getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { FiltersMeta, getFilterDropdownByKey } from '@condo/domains/common/utils/filters.utils' import { getFilteredValue } from '@condo/domains/common/utils/helpers' import { parseQuery } from '@condo/domains/common/utils/tables.utils' diff --git a/apps/condo/domains/contact/hooks/useTableColumns.tsx b/apps/condo/domains/contact/hooks/useTableColumns.tsx index ec5ff4e9656..67a327f08f4 100644 --- a/apps/condo/domains/contact/hooks/useTableColumns.tsx +++ b/apps/condo/domains/contact/hooks/useTableColumns.tsx @@ -8,13 +8,12 @@ import { useCallback, useMemo } from 'react' import { useIntl } from '@open-condo/next/intl' import { useOrganization } from '@open-condo/next/organization' -import { getOptionFilterDropdown } from '@condo/domains/common/components/Table/Filters' +import { getOptionFilterDropdown, getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { getAddressRender, getTableCellRenderer, getUnitNameRender, } from '@condo/domains/common/components/Table/Renders' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' import { FiltersMeta, getFilterDropdownByKey } from '@condo/domains/common/utils/filters.utils' import { getFilteredValue } from '@condo/domains/common/utils/helpers' import { getSorterMap, parseQuery } from '@condo/domains/common/utils/tables.utils' diff --git a/apps/condo/domains/marketplace/components/MarketplacePaymentsContent.tsx b/apps/condo/domains/marketplace/components/MarketplacePaymentsContent.tsx index 83269be720f..08efdc7e349 100644 --- a/apps/condo/domains/marketplace/components/MarketplacePaymentsContent.tsx +++ b/apps/condo/domains/marketplace/components/MarketplacePaymentsContent.tsx @@ -1,7 +1,5 @@ import { useQuery } from '@apollo/client' -import { - Payment as PaymentType, SortPaymentsBy, -} from '@app/condo/schema' +import { Payment as PaymentType, PaymentStatusType, PaymentWhereInput, SortPaymentsBy } from '@app/condo/schema' import styled from '@emotion/styled' import { Col, Row, RowProps } from 'antd' import { TableRowSelection } from 'antd/lib/table/interface' @@ -18,7 +16,6 @@ import { colors } from '@open-condo/ui/dist/colors' import { useBreakpoints } from '@open-condo/ui/dist/hooks' import { PaymentsSumTable } from '@condo/domains/acquiring/components/payments/PaymentsSumTable' -import { PAYMENT_WITHDRAWN_STATUS, PAYMENT_DONE_STATUS } from '@condo/domains/acquiring/constants/payment' import { EXPORT_PAYMENTS_TO_EXCEL, SUM_PAYMENTS_QUERY } from '@condo/domains/acquiring/gql' import { Payment } from '@condo/domains/acquiring/utils/clientSchema' import Input from '@condo/domains/common/components/antd/Input' @@ -45,7 +42,7 @@ const ROW_GUTTERS: RowProps['gutter'] = [16, 16] const SUM_BAR_COL_GUTTER: RowProps['gutter'] = [40, 0] const QUICK_FILTERS_COL_STYLE: CSSProperties = { alignSelf: 'center' } -function usePaymentsSum (whereQuery) { +function usePaymentsSum (whereQuery: PaymentWhereInput) { const { data, error, loading } = useQuery(SUM_PAYMENTS_QUERY, { fetchPolicy: 'cache-first', variables: { @@ -140,10 +137,10 @@ const MarketplacePaymentsTableContent = () => { }, }), [orgId]) - const searchPaymentsQuery = useMemo(() => { + const searchPaymentsQuery: PaymentWhereInput = useMemo(() => { return { ...invoiceOrganizationQuery, - status_in: showPaymentsOnlyInDoneStatus ? [PAYMENT_DONE_STATUS] : [PAYMENT_WITHDRAWN_STATUS, PAYMENT_DONE_STATUS], + status_in: showPaymentsOnlyInDoneStatus ? [PaymentStatusType.Done] : [PaymentStatusType.Withdrawn, PaymentStatusType.Done], } }, [orgId, showPaymentsOnlyInDoneStatus]) const sortBy = useMemo(() => sortersToSortBy(sorters) as SortPaymentsBy[], [sorters, sortersToSortBy]) @@ -167,17 +164,17 @@ const MarketplacePaymentsTableContent = () => { const { data: allPaymentsSum, loading: allPaymentsSumLoading } = usePaymentsSum({ ...filtersToWhere(filters), ...invoiceOrganizationQuery, - status_in: [PAYMENT_WITHDRAWN_STATUS, PAYMENT_DONE_STATUS], + status_in: [PaymentStatusType.Withdrawn, PaymentStatusType.Done], }) const { data: donePaymentsSum, loading: donePaymentsSumLoading } = usePaymentsSum({ ...filtersToWhere(filters), ...invoiceOrganizationQuery, - status_in: [PAYMENT_DONE_STATUS], + status_in: [PaymentStatusType.Done], }) const { data: withdrawnPaymentsSum, loading: withdrawnPaymentsSumLoading } = usePaymentsSum({ ...filtersToWhere(filters), ...invoiceOrganizationQuery, - status_in: [PAYMENT_WITHDRAWN_STATUS], + status_in: [PaymentStatusType.Withdrawn], }) const [selectedRows, setSelectedRows] = useState([]) @@ -389,7 +386,7 @@ export const MarketplacePaymentsContent = () => { invoice: { organization: { id: orgId }, }, - status_in: [PAYMENT_WITHDRAWN_STATUS, PAYMENT_DONE_STATUS], + status_in: [PaymentStatusType.Withdrawn, PaymentStatusType.Done], }, }) diff --git a/apps/condo/domains/marketplace/hooks/useMarketplaceInvoicesTableColumns.tsx b/apps/condo/domains/marketplace/hooks/useMarketplaceInvoicesTableColumns.tsx index c0ad999ef88..b0fdf6f61dc 100644 --- a/apps/condo/domains/marketplace/hooks/useMarketplaceInvoicesTableColumns.tsx +++ b/apps/condo/domains/marketplace/hooks/useMarketplaceInvoicesTableColumns.tsx @@ -5,8 +5,8 @@ import { useMemo } from 'react' import { useIntl } from '@open-condo/next/intl' import { Tag } from '@open-condo/ui' +import { getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { getDateRender, getTableCellRenderer } from '@condo/domains/common/components/Table/Renders' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' import { getFilterDropdownByKey } from '@condo/domains/common/utils/filters.utils' import { getFilteredValue } from '@condo/domains/common/utils/helpers' import { getSorterMap, parseQuery } from '@condo/domains/common/utils/tables.utils' diff --git a/apps/condo/domains/miniapp/components/AppCard.tsx b/apps/condo/domains/miniapp/components/AppCard.tsx index fa87dc6e2f4..62244bded6e 100644 --- a/apps/condo/domains/miniapp/components/AppCard.tsx +++ b/apps/condo/domains/miniapp/components/AppCard.tsx @@ -7,6 +7,9 @@ import { Card, Typography, Button } from '@open-condo/ui' import { AppLabelTag } from './AppLabelTag' +import type { AppLabelTagProps } from './AppLabelTag' + + const FALLBACK_IMAGE_URL = '/homeWithSun.svg' const TEXT_ELLIPSIS_CONFIG = { rows: 2 } const CARD_BODY_PADDINGS = 20 @@ -21,15 +24,15 @@ export const MIN_CARD_WIDTH = 250 type AppCardTitleProps = { logoUrl?: string - label?: string + label?: AppLabelTagProps['type'] } type AppCardProps = { connected: boolean name: string description?: string - logoUrl?: string - label?: string + logoUrl?: AppCardTitleProps['logoUrl'] + label?: AppCardTitleProps['label'] onClick?: () => void } diff --git a/apps/condo/domains/miniapp/components/AppDescription/ConnectModal.tsx b/apps/condo/domains/miniapp/components/AppDescription/ConnectModal.tsx index ae1c56944ea..0ff1896911d 100644 --- a/apps/condo/domains/miniapp/components/AppDescription/ConnectModal.tsx +++ b/apps/condo/domains/miniapp/components/AppDescription/ConnectModal.tsx @@ -1,14 +1,14 @@ +import { B2BAppContextStatusType } from '@app/condo/schema' import React from 'react' import { useIntl } from '@open-condo/next/intl' import { Modal, Typography } from '@open-condo/ui' -import { CONTEXT_IN_PROGRESS_STATUS, CONTEXT_FINISHED_STATUS, CONTEXT_ERROR_STATUS } from '@condo/domains/miniapp/constants' type ConnectModalProps = { miniappHasFrame: boolean miniappHasIcon: boolean - contextStatus?: CONTEXT_FINISHED_STATUS | CONTEXT_IN_PROGRESS_STATUS | CONTEXT_ERROR_STATUS + contextStatus?: B2BAppContextStatusType open: boolean closeModal: () => void } @@ -22,11 +22,11 @@ export const ConnectModal: React.FC = ({ }) => { const intl = useIntl() - if (!contextStatus || contextStatus === CONTEXT_ERROR_STATUS || (contextStatus === CONTEXT_FINISHED_STATUS && !miniappHasFrame)) { + if (!contextStatus || contextStatus === B2BAppContextStatusType.Error || (contextStatus === B2BAppContextStatusType.Finished && !miniappHasFrame)) { return null } - const postfix = contextStatus === CONTEXT_FINISHED_STATUS && miniappHasIcon ? '.withIcon' : '' + const postfix = contextStatus === B2BAppContextStatusType.Finished && miniappHasIcon ? '.withIcon' : '' const ModalTitle = intl.formatMessage({ id: `miniapp.connectModal.${contextStatus}${postfix}.title` as FormatjsIntl.Message['ids'] }) const ModalMessage = intl.formatMessage({ id: `miniapp.connectModal.${contextStatus}${postfix}.message` as FormatjsIntl.Message['ids'] }) diff --git a/apps/condo/domains/miniapp/components/AppDescription/PageContent.tsx b/apps/condo/domains/miniapp/components/AppDescription/PageContent.tsx index 19e1f604381..464316ccf56 100644 --- a/apps/condo/domains/miniapp/components/AppDescription/PageContent.tsx +++ b/apps/condo/domains/miniapp/components/AppDescription/PageContent.tsx @@ -1,4 +1,3 @@ -import { MiniAppOutput } from '@app/condo/schema' import { Row, Col } from 'antd' import get from 'lodash/get' import { useRouter } from 'next/router' @@ -18,6 +17,7 @@ import { TopCard } from './TopCard' import { AppCard, MIN_CARD_WIDTH } from '../AppCard' +import type { B2BAppLabelType, MiniAppOutput } from '@app/condo/schema' import type { RowProps, ColProps } from 'antd' @@ -37,7 +37,7 @@ type PageContentProps = { id: string name: string category: string - label?: string + label?: B2BAppLabelType shortDescription?: string detailedDescription?: string price?: string @@ -185,7 +185,7 @@ const PageContent: React.FC = ({ name={app.name} description={app.shortDescription} logoUrl={app.logo} - label={app.label} + label={app.label as B2BAppLabelType} onClick={handleCardClick(app.id, app.connected)} /> ))} diff --git a/apps/condo/domains/miniapp/components/AppDescription/TopCard.tsx b/apps/condo/domains/miniapp/components/AppDescription/TopCard.tsx index f1c0e12f3ae..7a05b051bab 100644 --- a/apps/condo/domains/miniapp/components/AppDescription/TopCard.tsx +++ b/apps/condo/domains/miniapp/components/AppDescription/TopCard.tsx @@ -18,6 +18,7 @@ import { CONTEXT_IN_PROGRESS_STATUS } from '@condo/domains/miniapp/constants' import { AppLabelTag } from '../AppLabelTag' +import type { B2BAppLabelType } from '@app/condo/schema' import type { RowProps, ColProps } from 'antd' const CAROUSEL_CHANGE_DELAY_IN_MS = 6000 // 6 sec @@ -47,7 +48,7 @@ type TopCardProps = { id: string name: string category: string - label?: string + label?: B2BAppLabelType description?: string price?: string gallery?: Array diff --git a/apps/condo/domains/miniapp/components/AppLabelTag.tsx b/apps/condo/domains/miniapp/components/AppLabelTag.tsx index 801931d49d4..2a2c7e93962 100644 --- a/apps/condo/domains/miniapp/components/AppLabelTag.tsx +++ b/apps/condo/domains/miniapp/components/AppLabelTag.tsx @@ -8,6 +8,9 @@ import { colors } from '@open-condo/ui/dist/colors' import { APP_FREE_LABEL, APP_DISCOUNT_LABEL, APP_POPULAR_LABEL, APP_NEW_LABEL } from '@condo/domains/miniapp/constants' +import type { B2BAppLabelType } from '@app/condo/schema' + + const LABEL_TO_TAG_PROPS = { [APP_FREE_LABEL]: { textColor: colors.blue['5'], bgColor: colors.blue['1'] }, [APP_DISCOUNT_LABEL]: { textColor: colors.red['5'], bgColor: colors.red['1'] }, @@ -15,8 +18,8 @@ const LABEL_TO_TAG_PROPS = { [APP_NEW_LABEL]: { textColor: colors.orange['5'], bgColor: colors.orange['1'] }, } -type AppLabelTagProps = { - type: APP_NEW_LABEL | APP_POPULAR_LABEL | APP_DISCOUNT_LABEL | APP_FREE_LABEL +export type AppLabelTagProps = { + type: B2BAppLabelType } export const AppLabelTag: React.FC = ({ type }) => { @@ -28,4 +31,4 @@ export const AppLabelTag: React.FC = ({ type }) => { return ( {AppLabel} ) -} \ No newline at end of file +} diff --git a/apps/condo/domains/miniapp/components/Catalog/CardGrid.tsx b/apps/condo/domains/miniapp/components/Catalog/CardGrid.tsx index 99fa3e55fd6..21ed5b55be2 100644 --- a/apps/condo/domains/miniapp/components/Catalog/CardGrid.tsx +++ b/apps/condo/domains/miniapp/components/Catalog/CardGrid.tsx @@ -24,7 +24,8 @@ import { import { AppCard, MIN_CARD_WIDTH } from '../AppCard' -import type { MiniAppOutput } from '@app/condo/schema' +import type { B2BAppLabelType, MiniAppOutput } from '@app/condo/schema' + const SEARCH_TAB_KEY = 'search' const TAB_GUTTER = 8 @@ -120,7 +121,7 @@ const TabPaneContent: React.FC = ({ tab, fallback }) => { name={app.name} description={app.shortDescription} logoUrl={app.logo} - label={app.label} + label={app.label as B2BAppLabelType} onClick={handleCardClick(app.id, app.connected, app.accessible)} /> diff --git a/apps/condo/domains/organization/components/EmployeeRoleForm/BaseEmployeeRoleForm.tsx b/apps/condo/domains/organization/components/EmployeeRoleForm/BaseEmployeeRoleForm.tsx index a258888ff63..020b5f2e0b5 100644 --- a/apps/condo/domains/organization/components/EmployeeRoleForm/BaseEmployeeRoleForm.tsx +++ b/apps/condo/domains/organization/components/EmployeeRoleForm/BaseEmployeeRoleForm.tsx @@ -6,6 +6,7 @@ import { OrganizationEmployeeRoleCreateInput as IEmployeeRoleCreateInput, OrganizationEmployeeRoleUpdateInput as IEmployeeRoleUpdateInput, QueryAllOrganizationEmployeeRolesArgs as IQueryAllEmployeeRolesArgs, + OrganizationEmployeeRoleTicketVisibilityTypeType, } from '@app/condo/schema' import { Col, ColProps, Row } from 'antd' import { FormProps } from 'antd/lib/form/Form' @@ -167,7 +168,7 @@ const getInitValues = (employeeRole: Partial = {}, permissionsGro return { name: employeeRole.name || '', description: employeeRole.description || '', - ticketVisibilityType: employeeRole.ticketVisibilityType || ORGANIZATION_TICKET_VISIBILITY, + ticketVisibilityType: employeeRole.ticketVisibilityType || OrganizationEmployeeRoleTicketVisibilityTypeType.Organization, permissions: { organization: organizationPermissions, b2bApps: b2bAppsPermissions, diff --git a/apps/condo/domains/organization/components/OrganizationSelect.tsx b/apps/condo/domains/organization/components/OrganizationSelect.tsx index bfe286a7164..7cfc4c41505 100644 --- a/apps/condo/domains/organization/components/OrganizationSelect.tsx +++ b/apps/condo/domains/organization/components/OrganizationSelect.tsx @@ -1,3 +1,4 @@ +import { OrganizationEmployeeWhereInput, OrganizationTypeType } from '@app/condo/schema' import { Dropdown } from 'antd' import get from 'lodash/get' import uniqBy from 'lodash/uniqBy' @@ -14,7 +15,6 @@ import { Space, Typography } from '@open-condo/ui' import type { TypographyTextProps } from '@open-condo/ui' import { useLayoutContext } from '@condo/domains/common/components/LayoutContext' -import { HOLDING_TYPE, MANAGING_COMPANY_TYPE } from '@condo/domains/organization/constants/common' import { useCreateOrganizationModalForm } from '@condo/domains/organization/hooks/useCreateOrganizationModalForm' import { OrganizationEmployee } from '@condo/domains/organization/utils/clientSchema' @@ -34,10 +34,10 @@ function compareEmployees (lhs: OrganizationEmployeeType, rhs: OrganizationEmplo const DROPDOWN_OVERLAY_STYLES: CSSProperties = { maxWidth: 300, width: '100%' } -const ORGANIZATION_EMPLOYEE_WHERE_QUERY = { +const ORGANIZATION_EMPLOYEE_WHERE_QUERY: OrganizationEmployeeWhereInput = { isRejected: false, isBlocked: false, - organization: { type_not: HOLDING_TYPE }, + organization: { type_not: OrganizationTypeType.Holding }, } export const InlineOrganizationSelect: React.FC = () => { @@ -79,7 +79,7 @@ export const InlineOrganizationSelect: React.FC = () => { const organizationType = get(createdOrganization, 'type') // The slash will only be there if we have just registered and we don't have any additional parameters in the address bar. - if (organizationType === MANAGING_COMPANY_TYPE && router.route === '/') { + if (organizationType === OrganizationTypeType.ManagingCompany && router.route === '/') { await router.push('/tour') } }, diff --git a/apps/condo/domains/organization/constants/common.js b/apps/condo/domains/organization/constants/common.js index fb6b3d8c1f3..82b4477a4bc 100644 --- a/apps/condo/domains/organization/constants/common.js +++ b/apps/condo/domains/organization/constants/common.js @@ -447,4 +447,5 @@ module.exports = { MIN_ROLE_NAME_LENGTH, MAX_ROLE_NAME_LENGTH, MAX_ROLE_DESCRIPTION_LENGTH, + MAX_ROLE_COUNT, } diff --git a/apps/condo/domains/organization/hooks/useEmployeeRolesTableColumns.tsx b/apps/condo/domains/organization/hooks/useEmployeeRolesTableColumns.tsx index 7b230c8a6ba..86263799af5 100644 --- a/apps/condo/domains/organization/hooks/useEmployeeRolesTableColumns.tsx +++ b/apps/condo/domains/organization/hooks/useEmployeeRolesTableColumns.tsx @@ -11,7 +11,7 @@ import React, { useCallback, useMemo } from 'react' import { useIntl } from '@open-condo/next/intl' import { Tooltip, Typography } from '@open-condo/ui' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' +import { getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { FiltersMeta, getFilterDropdownByKey } from '@condo/domains/common/utils/filters.utils' import { getFilteredValue } from '@condo/domains/common/utils/helpers' import { parseQuery } from '@condo/domains/common/utils/tables.utils' diff --git a/apps/condo/domains/organization/hooks/useTableColumns.tsx b/apps/condo/domains/organization/hooks/useTableColumns.tsx index 892277fe88e..49c587113c2 100644 --- a/apps/condo/domains/organization/hooks/useTableColumns.tsx +++ b/apps/condo/domains/organization/hooks/useTableColumns.tsx @@ -8,9 +8,8 @@ import React, { useCallback, useMemo } from 'react' import { useIntl } from '@open-condo/next/intl' -import { getOptionFilterDropdown } from '@condo/domains/common/components/Table/Filters' +import { getOptionFilterDropdown, getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { getTableCellRenderer } from '@condo/domains/common/components/Table/Renders' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' import { getFilterDropdownByKey } from '@condo/domains/common/utils/filters.utils' import { getFilteredValue } from '@condo/domains/common/utils/helpers' import { parseQuery } from '@condo/domains/common/utils/tables.utils' diff --git a/apps/condo/domains/scope/hooks/useTableColumns.tsx b/apps/condo/domains/scope/hooks/useTableColumns.tsx index ac5237912b3..ebe5e1ebe8c 100644 --- a/apps/condo/domains/scope/hooks/useTableColumns.tsx +++ b/apps/condo/domains/scope/hooks/useTableColumns.tsx @@ -5,8 +5,8 @@ import { useCallback, useMemo } from 'react' import { useIntl } from '@open-condo/next/intl' +import { getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { getTableCellRenderer } from '@condo/domains/common/components/Table/Renders' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' import { getFilterDropdownByKey } from '@condo/domains/common/utils/filters.utils' import { getFilteredValue } from '@condo/domains/common/utils/helpers' import { parseQuery } from '@condo/domains/common/utils/tables.utils' diff --git a/apps/condo/domains/ticket/components/BaseTicketForm/index.tsx b/apps/condo/domains/ticket/components/BaseTicketForm/index.tsx index 71c1e4b3708..3f764e430fd 100644 --- a/apps/condo/domains/ticket/components/BaseTicketForm/index.tsx +++ b/apps/condo/domains/ticket/components/BaseTicketForm/index.tsx @@ -64,14 +64,13 @@ import { } from '@condo/domains/ticket/components/TicketForm/TicketFormContext' import { TicketPropertyHintCard } from '@condo/domains/ticket/components/TicketPropertyHint/TicketPropertyHintCard' import { MAX_DETAILS_LENGTH } from '@condo/domains/ticket/constants' -import { VISIBLE_TICKET_SOURCE_TYPES_IN_TICKET_FORM } from '@condo/domains/ticket/constants/common' +import { VISIBLE_TICKET_SOURCE_TYPES_IN_TICKET_FORM } from '@condo/domains/ticket/constants/sourceTypes' import { useActiveCall } from '@condo/domains/ticket/contexts/ActiveCallContext' import { TicketFile, TicketSource } from '@condo/domains/ticket/utils/clientSchema' import { ITicketFormState } from '@condo/domains/ticket/utils/clientSchema/Ticket' import { getTicketDefaultDeadline } from '@condo/domains/ticket/utils/helpers' import { RESIDENT } from '@condo/domains/user/constants/common' - import { TicketAssignments } from './TicketAssignments' import { TicketDeadlineField } from './TicketDeadlineField' import { TicketDeferredDateField } from './TicketDeferredDateField' diff --git a/apps/condo/domains/ticket/components/ShareTicketModal.tsx b/apps/condo/domains/ticket/components/ShareTicketModal.tsx index 16d032818f7..7ea1a46d334 100644 --- a/apps/condo/domains/ticket/components/ShareTicketModal.tsx +++ b/apps/condo/domains/ticket/components/ShareTicketModal.tsx @@ -3,6 +3,7 @@ import crypto from 'crypto' import { green } from '@ant-design/colors' import { CloseCircleFilled, RightOutlined } from '@ant-design/icons' +import { Organization as IOrganization } from '@app/condo/schema' import { css, jsx } from '@emotion/react' import styled from '@emotion/styled' import { Col, Collapse, notification, Row } from 'antd' @@ -12,8 +13,6 @@ import Link from 'next/link' import { useRouter } from 'next/router' import React, { useState } from 'react' -import { Send } from '@open-condo/icons' -import { Organization } from '@open-condo/keystone/schema' import { useMutation } from '@open-condo/next/apollo' import { useIntl } from '@open-condo/next/intl' import { Button, Modal, Typography } from '@open-condo/ui' @@ -157,7 +156,7 @@ interface IShareTicketModalProps { details: string id: string locale?: string - organization: Organization + organization: IOrganization } export const ShareTicketModal: React.FC = (props) => { diff --git a/apps/condo/domains/ticket/constants/common.js b/apps/condo/domains/ticket/constants/common.js index f7c18c586df..8c574a71805 100644 --- a/apps/condo/domains/ticket/constants/common.js +++ b/apps/condo/domains/ticket/constants/common.js @@ -22,22 +22,6 @@ const TICKET_SOURCE_TYPES = { CRM_IMPORT: 'crm_import', } -const VISIBLE_TICKET_SOURCE_TYPES = [ - TICKET_SOURCE_TYPES.CALL, - TICKET_SOURCE_TYPES.MOBILE_APP, - TICKET_SOURCE_TYPES.REMOTE_SYSTEM, - TICKET_SOURCE_TYPES.VISIT, - TICKET_SOURCE_TYPES.EMAIL, - TICKET_SOURCE_TYPES.CRM_IMPORT, - TICKET_SOURCE_TYPES.WEB_APP, - TICKET_SOURCE_TYPES.MOBILE_APP_STAFF, - TICKET_SOURCE_TYPES.MESSENGER, -] - -const VISIBLE_TICKET_SOURCE_TYPES_IN_TICKET_FORM = [ - ...VISIBLE_TICKET_SOURCE_TYPES, -] - const MIN_TICKET_DEADLINE_DURATION = 'P' // 0 days const MAX_TICKET_DEADLINE_DURATION = 'P45D' // 45 days const DEFAULT_TICKET_DEADLINE_DURATION = 'P8D' // 8 days @@ -61,8 +45,6 @@ module.exports = { REQUIRED_TICKET_FIELDS, TICKET_SOURCE_TYPES, TICKET_SOURCE_PREFIX, - VISIBLE_TICKET_SOURCE_TYPES, - VISIBLE_TICKET_SOURCE_TYPES_IN_TICKET_FORM, MIN_TICKET_DEADLINE_DURATION, MAX_TICKET_DEADLINE_DURATION, DEFAULT_TICKET_DEADLINE_DURATION, diff --git a/apps/condo/domains/ticket/constants/sourceTypes.ts b/apps/condo/domains/ticket/constants/sourceTypes.ts new file mode 100644 index 00000000000..8cf8dde3cc0 --- /dev/null +++ b/apps/condo/domains/ticket/constants/sourceTypes.ts @@ -0,0 +1,17 @@ +import { TicketSourceTypeType, TicketSourceWhereInput } from '@app/condo/schema' + +export const VISIBLE_TICKET_SOURCE_TYPES: TicketSourceWhereInput['type_in'] = [ + TicketSourceTypeType.Call, + TicketSourceTypeType.MobileApp, + TicketSourceTypeType.RemoteSystem, + TicketSourceTypeType.Visit, + TicketSourceTypeType.Email, + TicketSourceTypeType.CrmImport, + TicketSourceTypeType.WebApp, + TicketSourceTypeType.MobileAppStaff, + TicketSourceTypeType.Messenger, +] + +export const VISIBLE_TICKET_SOURCE_TYPES_IN_TICKET_FORM: TicketSourceWhereInput['type_in'] = [ + ...VISIBLE_TICKET_SOURCE_TYPES, +] diff --git a/apps/condo/domains/ticket/hooks/useCallRecordTableColumns.tsx b/apps/condo/domains/ticket/hooks/useCallRecordTableColumns.tsx index 9635d652f42..b57ac4cf488 100644 --- a/apps/condo/domains/ticket/hooks/useCallRecordTableColumns.tsx +++ b/apps/condo/domains/ticket/hooks/useCallRecordTableColumns.tsx @@ -8,8 +8,8 @@ import { useOrganization } from '@open-condo/next/organization' import { Space, Tag, Tooltip } from '@open-condo/ui' import { colors } from '@open-condo/ui/dist/colors' +import { getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { getAddressRender, getDateRender, getTableCellRenderer } from '@condo/domains/common/components/Table/Renders' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' import { useDownloadFileFromServer } from '@condo/domains/common/hooks/useDownloadFileFromServer' import { getFilterDropdownByKey } from '@condo/domains/common/utils/filters.utils' import { formatPhone, getFilteredValue } from '@condo/domains/common/utils/helpers' diff --git a/apps/condo/domains/ticket/hooks/useClientCardTicketTableColumns.tsx b/apps/condo/domains/ticket/hooks/useClientCardTicketTableColumns.tsx index 5be5dc7f686..1122514a66c 100644 --- a/apps/condo/domains/ticket/hooks/useClientCardTicketTableColumns.tsx +++ b/apps/condo/domains/ticket/hooks/useClientCardTicketTableColumns.tsx @@ -4,8 +4,8 @@ import { useCallback, useMemo } from 'react' import { useIntl } from '@open-condo/next/intl' +import { getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { getDateRender, getTableCellRenderer } from '@condo/domains/common/components/Table/Renders' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' import { getFilteredValue } from '@condo/domains/common/utils/helpers' import { getSorterMap, parseQuery } from '@condo/domains/common/utils/tables.utils' import { TicketComment } from '@condo/domains/ticket/utils/clientSchema' diff --git a/apps/condo/domains/ticket/hooks/useIncidentTableColumns.tsx b/apps/condo/domains/ticket/hooks/useIncidentTableColumns.tsx index 82ec5159222..5f89257d02d 100644 --- a/apps/condo/domains/ticket/hooks/useIncidentTableColumns.tsx +++ b/apps/condo/domains/ticket/hooks/useIncidentTableColumns.tsx @@ -10,7 +10,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react' import { useIntl } from '@open-condo/next/intl' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' +import { getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { getFilterDropdownByKey } from '@condo/domains/common/utils/filters.utils' import { getFilteredValue } from '@condo/domains/common/utils/helpers' import { getSorterMap, parseQuery } from '@condo/domains/common/utils/tables.utils' diff --git a/apps/condo/domains/ticket/hooks/useTableColumns.tsx b/apps/condo/domains/ticket/hooks/useTableColumns.tsx index 98a520b751e..626d7320b13 100644 --- a/apps/condo/domains/ticket/hooks/useTableColumns.tsx +++ b/apps/condo/domains/ticket/hooks/useTableColumns.tsx @@ -11,13 +11,12 @@ import { useAuth } from '@open-condo/next/auth' import { useIntl } from '@open-condo/next/intl' import { useLayoutContext } from '@condo/domains/common/components/LayoutContext' -import { getOptionFilterDropdown } from '@condo/domains/common/components/Table/Filters' +import { getOptionFilterDropdown, getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { getAddressRender, getDateRender, getTableCellRenderer, } from '@condo/domains/common/components/Table/Renders' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' import { FiltersMeta, getFilterDropdownByKey } from '@condo/domains/common/utils/filters.utils' import { getFilteredValue } from '@condo/domains/common/utils/helpers' import { getSorterMap, parseQuery } from '@condo/domains/common/utils/tables.utils' diff --git a/apps/condo/domains/ticket/hooks/useTicketPropertyHintTableColumns.tsx b/apps/condo/domains/ticket/hooks/useTicketPropertyHintTableColumns.tsx index 2714f4ceb60..db6a14970cc 100644 --- a/apps/condo/domains/ticket/hooks/useTicketPropertyHintTableColumns.tsx +++ b/apps/condo/domains/ticket/hooks/useTicketPropertyHintTableColumns.tsx @@ -6,8 +6,8 @@ import React, { CSSProperties, useCallback, useMemo } from 'react' import { useIntl } from '@open-condo/next/intl' +import { getFilterIcon } from '@condo/domains/common/components/Table/Filters' import { getTableCellRenderer } from '@condo/domains/common/components/Table/Renders' -import { getFilterIcon } from '@condo/domains/common/components/TableFilter' import { FiltersMeta, getFilterDropdownByKey } from '@condo/domains/common/utils/filters.utils' import { getFilteredValue } from '@condo/domains/common/utils/helpers' import { parseQuery } from '@condo/domains/common/utils/tables.utils' diff --git a/apps/condo/domains/ticket/hooks/useTicketTableFilters.tsx b/apps/condo/domains/ticket/hooks/useTicketTableFilters.tsx index 909265d67b4..f9c75b4a5e0 100644 --- a/apps/condo/domains/ticket/hooks/useTicketTableFilters.tsx +++ b/apps/condo/domains/ticket/hooks/useTicketTableFilters.tsx @@ -28,9 +28,9 @@ import { } from '@condo/domains/common/utils/tables.utils' import { searchOrganizationPropertyScope } from '@condo/domains/scope/utils/clientSchema/search' import { ExpiredTicketsFilter } from '@condo/domains/ticket/components/TicketModalFilters' -import { VISIBLE_TICKET_SOURCE_TYPES } from '@condo/domains/ticket/constants/common' import { FEEDBACK_VALUES_BY_KEY } from '@condo/domains/ticket/constants/feedback' import { QUALITY_CONTROL_VALUES_BY_KEY } from '@condo/domains/ticket/constants/qualityControl' +import { VISIBLE_TICKET_SOURCE_TYPES } from '@condo/domains/ticket/constants/sourceTypes' import { TicketCategoryClassifier, TicketSource, TicketStatus } from '@condo/domains/ticket/utils/clientSchema' import { searchEmployeeUser, searchOrganizationProperty } from '@condo/domains/ticket/utils/clientSchema/search' import { diff --git a/apps/condo/package.json b/apps/condo/package.json index c4135d68222..693c896f06c 100644 --- a/apps/condo/package.json +++ b/apps/condo/package.json @@ -207,7 +207,7 @@ "mkdirp": "^1.0.4", "pluralize": "^8.0.0", "raw-loader": "^4.0.2", - "typescript": "^4.9.5", + "typescript": "^5.5.4", "webpack": "^4.46.0" }, "peerDependencies": { diff --git a/apps/condo/pages/_app.tsx b/apps/condo/pages/_app.tsx index 6f21782adbb..aed3c3b7fb7 100644 --- a/apps/condo/pages/_app.tsx +++ b/apps/condo/pages/_app.tsx @@ -539,9 +539,9 @@ const apolloCacheConfig: WithApolloProps['apolloCacheConfig'] = { } export default ( - withApollo({ ssr: !IS_SSR_DISABLED, apolloCacheConfig })( - withAuth({ ssr: !IS_SSR_DISABLED, USER_QUERY })( - withIntl({ ssr: !IS_SSR_DISABLED, messagesImporter, extractReqLocale, defaultLocale })( + withIntl({ ssr: !IS_SSR_DISABLED, messagesImporter, extractReqLocale, defaultLocale })( + withApollo({ ssr: !IS_SSR_DISABLED, apolloCacheConfig })( + withAuth({ ssr: !IS_SSR_DISABLED, USER_QUERY })( withOrganization({ ssr: !IS_SSR_DISABLED, GET_ORGANIZATION_TO_USER_LINK_BY_ID_QUERY: GET_ORGANIZATION_EMPLOYEE_BY_ID_QUERY, diff --git a/apps/condo/pages/auth/forgot.tsx b/apps/condo/pages/auth/forgot.tsx index 07080d377ae..733035055fb 100644 --- a/apps/condo/pages/auth/forgot.tsx +++ b/apps/condo/pages/auth/forgot.tsx @@ -104,7 +104,7 @@ function ResetPageView () { setIsLoading(false) setStep('validatePhone') }, - finally: () => setIsLoading(false), + onFinally: () => setIsLoading(false), intl, form, ErrorToFormFieldMsgMapping, diff --git a/apps/condo/pages/contact/index.tsx b/apps/condo/pages/contact/index.tsx index 0d610d30024..9d877d432d5 100644 --- a/apps/condo/pages/contact/index.tsx +++ b/apps/condo/pages/contact/index.tsx @@ -1,4 +1,4 @@ -import { ContactWhereInput, OrganizationEmployeeRole, SortContactsBy } from '@app/condo/schema' +import { ContactWhereInput, OrganizationEmployeeRole, SortContactsBy, ContactExportTaskFormatType } from '@app/condo/schema' import { Col, Row, Typography } from 'antd' import { Gutter } from 'antd/es/grid/row' import { ColumnsType } from 'antd/lib/table' @@ -23,7 +23,6 @@ import { Loader } from '@condo/domains/common/components/Loader' import { Table } from '@condo/domains/common/components/Table/Index' import { TableFiltersContainer } from '@condo/domains/common/components/TableFiltersContainer' import { EMOJI } from '@condo/domains/common/constants/emoji' -import { EXCEL } from '@condo/domains/common/constants/export' import { useGlobalHints } from '@condo/domains/common/hooks/useGlobalHints' import { usePreviousSortAndFilters } from '@condo/domains/common/hooks/usePreviousQueryParams' import { useQueryMappers } from '@condo/domains/common/hooks/useQueryMappers' @@ -135,7 +134,7 @@ const ContactTableContent: React.FC = (props) => { const { ExportButton } = useContactExportToExcelTask({ where: searchContactsQuery, sortBy, - format: EXCEL, + format: ContactExportTaskFormatType.Excel, user, timeZone: intl.formatters.getDateTimeFormat().resolvedOptions().timeZone, locale: intl.locale, diff --git a/apps/condo/pages/index.tsx b/apps/condo/pages/index.tsx index 4ba1457e094..ffd96544933 100644 --- a/apps/condo/pages/index.tsx +++ b/apps/condo/pages/index.tsx @@ -1,4 +1,4 @@ -import { TourStepStatusType } from '@app/condo/schema' +import { TourStepStatusType, TourStepTypeType } from '@app/condo/schema' import get from 'lodash/get' import pickBy from 'lodash/pickBy' import { useRouter } from 'next/router' @@ -33,7 +33,7 @@ const IndexPage = () => { const { count: completedTourStepsCount, loading : completedTourStepsCountLoading } = TourStep.useCount({ where: { organization: { id: organizationId }, - type_in: SECOND_LEVEL_STEPS, + type_in: SECOND_LEVEL_STEPS as Array, status: TourStepStatusType.Completed, }, }, { skip: !organizationId }) diff --git a/apps/condo/pages/ticket/index.tsx b/apps/condo/pages/ticket/index.tsx index 2a0cb8de17e..748edf6d73c 100644 --- a/apps/condo/pages/ticket/index.tsx +++ b/apps/condo/pages/ticket/index.tsx @@ -792,7 +792,6 @@ export const TicketsPageContent = ({ = ({ organ const UserInfoPage: React.FC & { requiredAccess?: React.FC } = () => { const { user } = useAuth() const userId = useMemo(() => get(user, 'id', null), [user]) - const organizationEmployeesQuery = useMemo(() => ({ + const organizationEmployeesQuery = useMemo(() => ({ where: { user: { id: userId }, isAccepted: true, - organization: { type_not: HOLDING_TYPE }, + organization: { type_not: OrganizationTypeType.Holding }, }, }), [userId]) diff --git a/apps/condo/tsconfig.json b/apps/condo/tsconfig.json index 4768da00acc..72042941262 100644 --- a/apps/condo/tsconfig.json +++ b/apps/condo/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "ES6", "lib": [ "dom", "dom.iterable", diff --git a/apps/condorb b/apps/condorb index 8262f144203..e7a95037215 160000 --- a/apps/condorb +++ b/apps/condorb @@ -1 +1 @@ -Subproject commit 8262f144203379d3a05c1b913ea0cba446b7dd65 +Subproject commit e7a95037215271ddc65a0bbc7d6ccf305fbcb58d diff --git a/apps/dev-portal/package.json b/apps/dev-portal/package.json index 384ebe9ab8b..2954f1cd0d1 100644 --- a/apps/dev-portal/package.json +++ b/apps/dev-portal/package.json @@ -66,7 +66,7 @@ "@types/react-dom": "18.0.10", "@types/title": "3.4.1", "rc-field-form": "1.44.0", - "ts-node": "^10.9.1", - "typescript": "^4.9.5" + "ts-node": "^10.9.2", + "typescript": "^5.5.4" } } diff --git a/apps/documents-next b/apps/documents-next index 7817c992ad2..c7ad0c9bfe1 160000 --- a/apps/documents-next +++ b/apps/documents-next @@ -1 +1 @@ -Subproject commit 7817c992ad2e5d92678b891d72564309acd6ce8f +Subproject commit c7ad0c9bfe1f9fb91e69da2bb6a17cacff12c95b diff --git a/apps/eps b/apps/eps index 692305a5d11..3db6857772a 160000 --- a/apps/eps +++ b/apps/eps @@ -1 +1 @@ -Subproject commit 692305a5d11ba5936fa16d5f9e491f2b9452938b +Subproject commit 3db6857772a4cead342ac6c8f5e9d023fe10ab94 diff --git a/apps/insurance b/apps/insurance index 6eaca214b19..baf35d79a0d 160000 --- a/apps/insurance +++ b/apps/insurance @@ -1 +1 @@ -Subproject commit 6eaca214b190a8e69fec4804a01be655193585eb +Subproject commit baf35d79a0d48f505ec3ef11b994113ee76c9ef8 diff --git a/apps/meters-billing-integration b/apps/meters-billing-integration index 7775f15ecf6..20b3bbf83af 160000 --- a/apps/meters-billing-integration +++ b/apps/meters-billing-integration @@ -1 +1 @@ -Subproject commit 7775f15ecf6bb5bc916a12c76c2d4992284116a8 +Subproject commit 20b3bbf83afab3389d3f39abe6c2ef35aea80f47 diff --git a/apps/miniapp/package.json b/apps/miniapp/package.json index b9dcd97310c..2bb2b0901c3 100644 --- a/apps/miniapp/package.json +++ b/apps/miniapp/package.json @@ -103,7 +103,7 @@ "less-loader": "^4.0.0", "pluralize": "^8.0.0", "raw-loader": "^4.0.2", - "typescript": "^4.9.5", + "typescript": "^5.5.4", "webpack": "^4.46.0" }, "repository": "https://github.com/open-condo-software/condo/tree/main/apps/miniapp" diff --git a/apps/miniapp/pages/_app.tsx b/apps/miniapp/pages/_app.tsx index 97e1f81df13..db971282cae 100644 --- a/apps/miniapp/pages/_app.tsx +++ b/apps/miniapp/pages/_app.tsx @@ -79,13 +79,13 @@ const customAuthMutations = { } // export default ( -// withApollo({ ssr: true })( -// withIntl({ ssr: true, messagesImporter })( +// withIntl({ ssr: true, messagesImporter })( +// withApollo({ ssr: true })( // withAuth({ ssr: true, USER_QUERY })(MyApp)))) export default ( - withApollo({ ssr: true })( - withIntl({ ssr: true, messagesImporter })( + withIntl({ ssr: true, messagesImporter })( + withApollo({ ssr: true })( withAuth({ ssr: true, ...customAuthMutations })( // Auth is mandatory to detection is oauth needed or not withOidcAuth()( MyApp, diff --git a/apps/miniapp/tsconfig.json b/apps/miniapp/tsconfig.json index 62758034ab8..fdfe1a086ba 100644 --- a/apps/miniapp/tsconfig.json +++ b/apps/miniapp/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "ES6", "lib": [ "dom", "dom.iterable", diff --git a/apps/pass b/apps/pass index 25197646d01..24770ed67d6 160000 --- a/apps/pass +++ b/apps/pass @@ -1 +1 @@ -Subproject commit 25197646d01afd86f4c51f1efa92f7e3d603d9f7 +Subproject commit 24770ed67d66c5256fe2cacda32e7644fc8b5023 diff --git a/apps/property-importer b/apps/property-importer index 5cc96f7bb4d..1131b30531f 160000 --- a/apps/property-importer +++ b/apps/property-importer @@ -1 +1 @@ -Subproject commit 5cc96f7bb4debfb21d9c599182b9f474e9b6c9bf +Subproject commit 1131b30531fe938905288ede0f5590de04a1ab5a diff --git a/apps/registry b/apps/registry index 1577f6fcd2c..a4c4438b134 160000 --- a/apps/registry +++ b/apps/registry @@ -1 +1 @@ -Subproject commit 1577f6fcd2c8155ed1bfd9bc64f7f63fc7d0548a +Subproject commit a4c4438b13490c93390d6bf1a0f2236d9f9405e2 diff --git a/apps/resident-app b/apps/resident-app index 6090e4d2376..a1247bcad61 160000 --- a/apps/resident-app +++ b/apps/resident-app @@ -1 +1 @@ -Subproject commit 6090e4d237619fafa09b099b73c8c48e4b046d88 +Subproject commit a1247bcad61d54e2cf1f8cadcdf062a5cf636300 diff --git a/apps/telephony b/apps/telephony index 5b54e09453b..89c6eaa4c36 160000 --- a/apps/telephony +++ b/apps/telephony @@ -1 +1 @@ -Subproject commit 5b54e09453b83e9360ba5c1e3bb26734331248bc +Subproject commit 89c6eaa4c36ea769898af5fabc1380dddd7e29b5 diff --git a/apps/telephony-integration b/apps/telephony-integration index 42208e05c1f..bb6eb231b38 160000 --- a/apps/telephony-integration +++ b/apps/telephony-integration @@ -1 +1 @@ -Subproject commit 42208e05c1f4c9b00ff36697d195d14f909fcc6a +Subproject commit bb6eb231b385bfa725f0f3c0da064147de24c979 diff --git a/packages/bridge/package.json b/packages/bridge/package.json index 5619b09ea69..960da96bb3c 100644 --- a/packages/bridge/package.json +++ b/packages/bridge/package.json @@ -44,6 +44,6 @@ "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-uglify": "^6.0.4", "tslib": "^2.4.1", - "typescript": "^4.9.5" + "typescript": "^5.5.4" } } diff --git a/packages/bridge/tsconfig.json b/packages/bridge/tsconfig.json index f192f0b3a9f..5a67ef41779 100644 --- a/packages/bridge/tsconfig.json +++ b/packages/bridge/tsconfig.json @@ -2,7 +2,7 @@ "$schema": "https://json.schemastore.org/tsconfig", "extends": "@open-condo/tsconfig/base.json", "compilerOptions": { - "target": "ES5", + "target": "ES6", "rootDir": "." }, "exclude": [ diff --git a/packages/codegen/templates/app00/package.json b/packages/codegen/templates/app00/package.json index b3c80883896..abe49816ddf 100644 --- a/packages/codegen/templates/app00/package.json +++ b/packages/codegen/templates/app00/package.json @@ -109,7 +109,7 @@ "less-loader": "^4.0.0", "pluralize": "^8.0.0", "raw-loader": "^4.0.2", - "typescript": "^4.9.5", + "typescript": "^5.5.4", "webpack": "^4.46.0" }, "repository": "https://github.com/open-condo-software/condo/tree/main/apps/{{ name }}" diff --git a/packages/codegen/templates/app00/pages/_app.tsx b/packages/codegen/templates/app00/pages/_app.tsx index 671fbf4c803..6ffbd483589 100644 --- a/packages/codegen/templates/app00/pages/_app.tsx +++ b/packages/codegen/templates/app00/pages/_app.tsx @@ -121,8 +121,8 @@ const resolveBypass = ({ router }) => { } export default ( - withApollo({ ssr: true })( - withIntl({ ssr: true, messagesImporter })( + withIntl({ ssr: true, messagesImporter })( + withApollo({ ssr: true })( withAuth({ ssr: true, ...customAuthMutations })( withOidcAuth({ resolveBypass })( MyApp diff --git a/packages/codegen/tsconfig.json b/packages/codegen/tsconfig.json index 4310905a19d..2eedddc52cf 100644 --- a/packages/codegen/tsconfig.json +++ b/packages/codegen/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "ES6", "lib": [ "dom", "dom.iterable", diff --git a/packages/icons/package.json b/packages/icons/package.json index 933667f5a76..d29988115fa 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -58,8 +58,8 @@ "fs-extra": "^11.1.0", "react": "^16.13.1", "react-dom": "^16.13.1", - "ts-node": "^10.9.1", - "typescript": "^4.9.5", + "ts-node": "^10.9.2", + "typescript": "^5.5.4", "webpack": "^5.91.0", "webpack-cli": "^5.0.1" } diff --git a/packages/next/intl.tsx b/packages/next/intl.tsx index 326f1660e57..3bd9e70c0a2 100644 --- a/packages/next/intl.tsx +++ b/packages/next/intl.tsx @@ -29,7 +29,7 @@ const LocaleContext = React.createContext({ const useLocale = (): ILocaleContext => useContext(LocaleContext) -let messagesImporter: MessagesImporter = (locale) => { +let messagesImporter: MessagesImporter = () => { throw new Error('You should define your own "messagesImporter(locale)" function. ' + 'Like so: "withIntl({ ..., messagesImporter: (locale) => import(`../lang/${locale}/${locale}`) })(...)"') } diff --git a/packages/tsconfig/next-app.json b/packages/tsconfig/next-app.json index cb5c92022cc..b6ab722ae39 100644 --- a/packages/tsconfig/next-app.json +++ b/packages/tsconfig/next-app.json @@ -3,7 +3,7 @@ "display": "Next.js", "extends": "./base.json", "compilerOptions": { - "target": "es5", + "target": "ES6", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, diff --git a/packages/tsconfig/react-lib.json b/packages/tsconfig/react-lib.json index 001f39fc23e..8a028627e13 100644 --- a/packages/tsconfig/react-lib.json +++ b/packages/tsconfig/react-lib.json @@ -12,6 +12,6 @@ "noUnusedLocals": true, "noUnusedParameters": true, "sourceMap": true, - "target": "ES2015" + "target": "ES6" } } \ No newline at end of file diff --git a/packages/ui/.storybook/main.ts b/packages/ui/.storybook/main.ts index 3bad286279b..d1d99416df2 100644 --- a/packages/ui/.storybook/main.ts +++ b/packages/ui/.storybook/main.ts @@ -1,8 +1,8 @@ import get from 'lodash/get' const lessLoader = require('../less-loader.config.js') -import type { StorybookConfig } from '@storybook/react/types' import type { RuleSetRule } from 'webpack' +import type { StorybookConfig } from '@storybook/react-webpack5' const baseCssLoaders = [ 'style-loader', @@ -20,9 +20,9 @@ const config: StorybookConfig = { '@storybook/addon-essentials', '@storybook/addon-interactions' ], - 'framework': '@storybook/react', - 'core': { - 'builder': '@storybook/builder-webpack5' + 'framework': { + name: "@storybook/react-webpack5", + options: {} }, 'staticDirs': [{ from: '../public', to: '/ui' }], 'webpackFinal': async (config) => { diff --git a/packages/ui/package.json b/packages/ui/package.json index 8855b7b1bba..e4c457b6ca0 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -34,8 +34,8 @@ "build:tokens": "yarn build:styles && yarn build:colors", "build:lib": "webpack --config webpack.prod.js && tsc --project tsconfig.prod.json", "build": "yarn build:tokens && yarn build:lib", - "build:sb": "yarn build:deps && yarn build:tokens && build-storybook", - "dev": "yarn build:deps && yarn build:tokens && start-storybook -p 6006", + "build:sb": "yarn build:deps && yarn build:tokens && storybook build", + "dev": "yarn build:deps && yarn build:tokens && storybook dev -p 6006", "watch": "yarn build:deps && yarn build:tokens && webpack --config webpack.dev.js" }, "files": [ @@ -75,17 +75,17 @@ "@babel/preset-typescript": "^7.18.6", "@mdx-js/react": "^1.6.22", "@open-condo/tsconfig": "workspace:^", - "@storybook/addon-actions": "^6.5.16", - "@storybook/addon-docs": "^6.5.16", - "@storybook/addon-essentials": "^6.5.16", - "@storybook/addon-interactions": "^6.5.16", - "@storybook/addon-links": "^6.5.16", - "@storybook/addons": "^6.5.16", - "@storybook/builder-webpack5": "^6.5.16", - "@storybook/manager-webpack5": "^6.5.16", - "@storybook/react": "^6.5.16", + "@storybook/addon-actions": "7.6.20", + "@storybook/addon-docs": "7.6.20", + "@storybook/addon-essentials": "7.6.20", + "@storybook/addon-interactions": "7.6.20", + "@storybook/addon-links": "7.6.20", + "@storybook/addons": "7.6.20", + "@storybook/cli": "7.6.20", + "@storybook/react": "7.6.20", + "@storybook/react-webpack5": "7.6.20", "@storybook/testing-library": "^0.0.13", - "@storybook/theming": "^6.5.16", + "@storybook/theming": "7.6.20", "@types/node": "^16", "@types/react": "16.9.17", "babel": "^6.23.0", @@ -107,11 +107,12 @@ "react": "^16.13.1", "react-dom": "^16.13.1", "source-map-loader": "^4.0.1", + "storybook": "7.6.20", "style-dictionary": "^3.9.2", "style-loader": "^3.3.1", "token-transformer": "^0.0.27", "ts-loader": "^9.4.1", - "typescript": "^4.9.5", + "typescript": "^5.5.4", "webpack": "^5.91.0", "webpack-cli": "^4.10.0", "webpack-merge": "^5.8.0" diff --git a/packages/ui/src/components/Dropdown/button/extendedButton.tsx b/packages/ui/src/components/Dropdown/button/extendedButton.tsx index 1bb042c3bae..2bed29fdb53 100644 --- a/packages/ui/src/components/Dropdown/button/extendedButton.tsx +++ b/packages/ui/src/components/Dropdown/button/extendedButton.tsx @@ -27,20 +27,21 @@ const ExtendedButton: React.FC = (props) => { {...rest} prefixCls={BUTTON_CLASS_PREFIX} className={buttonClasses} - > - {/* NOTE: We ignore typing errors to put custom content in the CondoButton. */} - {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */} - {/* @ts-ignore */} - <> - - {children} - -
- - - - - + /* NOTE: We ignore typing errors to put custom content in the CondoButton. + eslint-disable-next-line @typescript-eslint/ban-ts-comment + @ts-ignore */ + children={( + <> + + {children} + +
+ + + + + )} + /> ) } diff --git a/packages/ui/src/stories/ActionBar.stories.tsx b/packages/ui/src/stories/ActionBar.stories.tsx index bffa837b9a5..b582d9c8fb7 100644 --- a/packages/ui/src/stories/ActionBar.stories.tsx +++ b/packages/ui/src/stories/ActionBar.stories.tsx @@ -1,4 +1,4 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react' +import { StoryFn, Meta } from '@storybook/react' import { Col, Row } from 'antd' import React from 'react' @@ -18,9 +18,9 @@ export default { message: { control: 'text' }, actions: { control: false }, }, -} as ComponentMeta +} as Meta -const Template: ComponentStory = (args) => { +const Template: StoryFn = (args) => { return ( target.parentElement || target }} @@ -65,7 +65,7 @@ WithDropdownButton.args = { Hover me 1 , target.parentElement || target }} diff --git a/packages/ui/src/stories/Alert.stories.tsx b/packages/ui/src/stories/Alert.stories.tsx index 83eb54a60dc..588c86a3c86 100644 --- a/packages/ui/src/stories/Alert.stories.tsx +++ b/packages/ui/src/stories/Alert.stories.tsx @@ -1,4 +1,4 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react' +import { StoryFn, Meta } from '@storybook/react' import React from 'react' import { Alert } from '@open-condo/ui/src' @@ -12,9 +12,9 @@ export default { showIcon: true, description: 'Description', }, -} as ComponentMeta +} as Meta -const Template: ComponentStory = (props) => +const Template: StoryFn = (props) => export const SuccessAlert = Template.bind({}) SuccessAlert.args = { diff --git a/packages/ui/src/stories/Banner.stories.tsx b/packages/ui/src/stories/Banner.stories.tsx index a2a6d9dee15..07b8c78f910 100644 --- a/packages/ui/src/stories/Banner.stories.tsx +++ b/packages/ui/src/stories/Banner.stories.tsx @@ -1,4 +1,4 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react' +import { StoryFn, Meta } from '@storybook/react' import React from 'react' import { Banner as Component } from '@open-condo/ui/src' @@ -19,9 +19,9 @@ export default { }, }, }, -} as ComponentMeta +} as Meta -const Template: ComponentStory = (args) => +const Template: StoryFn = (args) => export const Solid = Template.bind({}) Solid.args = { diff --git a/packages/ui/src/stories/Button/Button.stories.tsx b/packages/ui/src/stories/Button/Button.stories.tsx index a414e1b4675..355dd4c6722 100644 --- a/packages/ui/src/stories/Button/Button.stories.tsx +++ b/packages/ui/src/stories/Button/Button.stories.tsx @@ -1,4 +1,4 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react' +import { StoryFn, Meta } from '@storybook/react' import React from 'react' import * as condoIcons from '@open-condo/icons' @@ -38,9 +38,9 @@ export default { htmlType: { defaultValue: 'button' }, focus: { type: 'boolean', default: false }, }, -} as ComponentMeta +} as Meta -const Template: ComponentStory = (props) =>