diff --git a/package.json b/package.json index a49847b5a..77fb152a7 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", "mui-color-input": "^9.0.0", - "openstack-uicore-foundation": "5.0.40", + "openstack-uicore-foundation": "5.0.43", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/src/actions/__tests__/dropbox-sync-actions.test.js b/src/actions/__tests__/dropbox-sync-actions.test.js index d15395d1b..a18c8e93c 100644 --- a/src/actions/__tests__/dropbox-sync-actions.test.js +++ b/src/actions/__tests__/dropbox-sync-actions.test.js @@ -8,9 +8,9 @@ import flushPromises from "flush-promises"; import { getRequest, putRequest, - postRequest + postRequest, + snackbarErrorHandler } from "openstack-uicore-foundation/lib/utils/actions"; -import { snackbarErrorHandler } from "../base-actions"; import * as DropboxSyncActions from "../dropbox-sync-actions"; import * as methods from "../../utils/methods"; import * as MediaUploadActions from "../media-upload-actions"; diff --git a/src/actions/dropbox-sync-actions.js b/src/actions/dropbox-sync-actions.js index bba4db31a..b0791857a 100644 --- a/src/actions/dropbox-sync-actions.js +++ b/src/actions/dropbox-sync-actions.js @@ -21,9 +21,9 @@ import { stopLoading, startLoading, showSuccessMessage, - authErrorHandler + authErrorHandler, + snackbarErrorHandler } from "openstack-uicore-foundation/lib/utils/actions"; -import { snackbarErrorHandler } from "./base-actions"; import { getAccessTokenSafely, range } from "../utils/methods"; import { MAX_PER_PAGE, TEN, TWO } from "../utils/constants"; diff --git a/src/components/forms/badge-form.js b/src/components/forms/badge-form.js index ed30b9d7b..6b20cb0d5 100644 --- a/src/components/forms/badge-form.js +++ b/src/components/forms/badge-form.js @@ -16,13 +16,11 @@ import T from "i18n-react/dist/i18n-react"; import Swal from "sweetalert2"; import moment from "moment-timezone"; import "awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css"; -import { - Dropdown, - SimpleLinkList, - Table, - FreeTextSearch, - DateTimePicker -} from "openstack-uicore-foundation/lib/components"; +import Dropdown from "openstack-uicore-foundation/lib/components/inputs/dropdown"; +import SimpleLinkList from "openstack-uicore-foundation/lib/components/simple-link-list"; +import Table from "openstack-uicore-foundation/lib/components/table"; +import FreeTextSearch from "openstack-uicore-foundation/lib/components/free-text-search"; +import DateTimePicker from "openstack-uicore-foundation/lib/components/inputs/datetimepicker"; import { epochToMomentTimeZone } from "openstack-uicore-foundation/lib/utils/methods"; import { Pagination } from "react-bootstrap"; import { shallowEqual } from "../../utils/methods"; diff --git a/src/components/forms/badge-type-form.js b/src/components/forms/badge-type-form.js index f8d7fe347..b92959229 100644 --- a/src/components/forms/badge-type-form.js +++ b/src/components/forms/badge-type-form.js @@ -14,10 +14,8 @@ import React from "react"; import T from "i18n-react/dist/i18n-react"; import "awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css"; -import { - Input, - SimpleLinkList -} from "openstack-uicore-foundation/lib/components"; +import Input from "openstack-uicore-foundation/lib/components/inputs/text-input"; +import SimpleLinkList from "openstack-uicore-foundation/lib/components/simple-link-list"; import { isEmpty, scrollToError, @@ -47,7 +45,7 @@ class BadgeTypeForm extends React.Component { this.handleSubmit = this.handleSubmit.bind(this); } - componentDidUpdate(prevProps, prevState, snapshot) { + componentDidUpdate(prevProps) { const state = {}; scrollToError(this.props.errors); diff --git a/src/components/forms/event-category-group-form.js b/src/components/forms/event-category-group-form.js index 3c0f9abfd..5195d60cb 100644 --- a/src/components/forms/event-category-group-form.js +++ b/src/components/forms/event-category-group-form.js @@ -19,12 +19,10 @@ import { queryTracks, queryGroups } from "openstack-uicore-foundation/lib/utils/query-actions"; -import { - Input, - SimpleLinkList, - Dropdown, - DateTimePicker -} from "openstack-uicore-foundation/lib/components"; +import Input from "openstack-uicore-foundation/lib/components/inputs/text-input"; +import SimpleLinkList from "openstack-uicore-foundation/lib/components/simple-link-list"; +import Dropdown from "openstack-uicore-foundation/lib/components/inputs/dropdown"; +import DateTimePicker from "openstack-uicore-foundation/lib/components/inputs/datetimepicker"; import TextEditorV3 from "openstack-uicore-foundation/lib/components/inputs/editor-input-v3"; import Swal from "sweetalert2"; import { diff --git a/src/components/forms/event-comment-form.js b/src/components/forms/event-comment-form.js index e7b5b6265..692bd0755 100644 --- a/src/components/forms/event-comment-form.js +++ b/src/components/forms/event-comment-form.js @@ -14,7 +14,7 @@ import React from "react"; import T from "i18n-react/dist/i18n-react"; import "awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css"; -import { Input } from "openstack-uicore-foundation/lib/components"; +import Input from "openstack-uicore-foundation/lib/components/inputs/text-input"; import { isEmpty, scrollToError, diff --git a/src/components/forms/room-form.js b/src/components/forms/room-form.js index 043e1766f..da5274eee 100644 --- a/src/components/forms/room-form.js +++ b/src/components/forms/room-form.js @@ -14,12 +14,10 @@ import React from "react"; import T from "i18n-react/dist/i18n-react"; import "awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css"; -import { - Input, - SimpleLinkList, - Dropdown, - UploadInput -} from "openstack-uicore-foundation/lib/components"; +import Input from "openstack-uicore-foundation/lib/components/inputs/text-input"; +import SimpleLinkList from "openstack-uicore-foundation/lib/components/simple-link-list"; +import Dropdown from "openstack-uicore-foundation/lib/components/inputs/dropdown"; +import UploadInput from "openstack-uicore-foundation/lib/components/inputs/upload-input"; import TextEditorV3 from "openstack-uicore-foundation/lib/components/inputs/editor-input-v3"; import { isEmpty, scrollToError, shallowEqual } from "../../utils/methods"; import HourIntervalInput from "../inputs/date-interval-input"; diff --git a/src/components/forms/schedule-settings-form/index.js b/src/components/forms/schedule-settings-form/index.js index dd30219d9..7fbc41a59 100644 --- a/src/components/forms/schedule-settings-form/index.js +++ b/src/components/forms/schedule-settings-form/index.js @@ -9,26 +9,18 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - **/ + * */ import React from "react"; import T from "i18n-react/dist/i18n-react"; import "awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css"; -import { - Dropdown, - Input, - SimpleLinkList -} from "openstack-uicore-foundation/lib/components"; -import { - isEmpty, - scrollToError, - shallowEqual, - hasErrors -} from "../../../utils/methods"; +import Dropdown from "openstack-uicore-foundation/lib/components/inputs/dropdown"; +import Input from "openstack-uicore-foundation/lib/components/inputs/text-input"; import Switch from "react-switch"; +import SortableTable from "openstack-uicore-foundation/lib/components/table-sortable"; +import { isEmpty, scrollToError, shallowEqual } from "../../../utils/methods"; import EditLabelSlider from "../../inputs/edit-label-slider"; import PreFilterInput from "./pre-filter-input"; -import SortableTable from "openstack-uicore-foundation/lib/components/table-sortable"; class ScheduleSettingsForm extends React.Component { constructor(props) { @@ -40,7 +32,7 @@ class ScheduleSettingsForm extends React.Component { }; } - componentDidUpdate(prevProps, prevState, snapshot) { + componentDidUpdate(prevProps) { const state = {}; scrollToError(this.props.errors); @@ -70,11 +62,11 @@ class ScheduleSettingsForm extends React.Component { errors[id] = ""; entity[id] = value; - this.setState({ entity: entity, errors: errors }); + this.setState({ entity, errors }); }; updateFilterOrder = (filters, filterId, newOrder) => { - console.log(`updateFilterOrder`, filters, filterId, newOrder); + console.log("updateFilterOrder", filters, filterId, newOrder); }; onSwitchChange = (id, val) => { @@ -136,17 +128,15 @@ class ScheduleSettingsForm extends React.Component { const columns = [ { columnKey: "type", - render: (filter) => { - return ( - - ); - } + render: (filter) => ( + + ) } ]; diff --git a/src/components/forms/tag-group-form.js b/src/components/forms/tag-group-form.js index b3375e05c..a0a265b5a 100644 --- a/src/components/forms/tag-group-form.js +++ b/src/components/forms/tag-group-form.js @@ -9,16 +9,14 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - **/ + * */ import React from "react"; import T from "i18n-react/dist/i18n-react"; import "awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css"; import { queryTags } from "openstack-uicore-foundation/lib/utils/query-actions"; -import { - Input, - SimpleLinkList -} from "openstack-uicore-foundation/lib/components"; +import Input from "openstack-uicore-foundation/lib/components/inputs/text-input"; +import SimpleLinkList from "openstack-uicore-foundation/lib/components/simple-link-list"; import { isEmpty, scrollToError, shallowEqual } from "../../utils/methods"; class TagGroupForm extends React.Component { @@ -36,7 +34,7 @@ class TagGroupForm extends React.Component { this.handleSubmit = this.handleSubmit.bind(this); } - componentDidUpdate(prevProps, prevState, snapshot) { + componentDidUpdate(prevProps) { const state = {}; scrollToError(this.props.errors); @@ -55,17 +53,17 @@ class TagGroupForm extends React.Component { } handleChange(ev) { - let entity = { ...this.state.entity }; - let errors = { ...this.state.errors }; - let { value, id } = ev.target; + const entity = { ...this.state.entity }; + const errors = { ...this.state.errors }; + const { value, id } = ev.target; errors[id] = ""; entity[id] = value; - this.setState({ entity: entity, errors: errors }); + this.setState({ entity, errors }); } handleSubmit(ev) { - let entity = { ...this.state.entity }; + const entity = { ...this.state.entity }; ev.preventDefault(); @@ -73,7 +71,7 @@ class TagGroupForm extends React.Component { } hasErrors(field) { - let { errors } = this.state; + const { errors } = this.state; if (field in errors) { return errors[field]; } @@ -91,13 +89,12 @@ class TagGroupForm extends React.Component { render() { const { entity } = this.state; - const { currentSummit } = this.props; - let allowedTagsColumns = [ + const allowedTagsColumns = [ { columnKey: "tag", value: T.translate("edit_tag_group.tag") } ]; - let allowedTagsOptions = { + const allowedTagsOptions = { title: T.translate("edit_tag_group.allowed_tags"), sortCol: "tag", valueKey: "id", diff --git a/src/components/upload-dialog/index.js b/src/components/upload-dialog/index.js index 75eb31cfe..a9dcd8ccf 100644 --- a/src/components/upload-dialog/index.js +++ b/src/components/upload-dialog/index.js @@ -23,7 +23,7 @@ import { Typography } from "@mui/material"; import PropTypes from "prop-types"; -import { UploadInputV3 } from "openstack-uicore-foundation/lib/components"; +import UploadInputV3 from "openstack-uicore-foundation/lib/components/inputs/upload-input-v3"; import T from "i18n-react/dist/i18n-react"; import CloseIcon from "@mui/icons-material/Close"; import NoteAddIcon from "@mui/icons-material/NoteAdd"; diff --git a/src/pages/companies/components/__tests__/company-dialog.test.js b/src/pages/companies/components/__tests__/company-dialog.test.js index fb6eef49f..bb0077fed 100644 --- a/src/pages/companies/components/__tests__/company-dialog.test.js +++ b/src/pages/companies/components/__tests__/company-dialog.test.js @@ -23,25 +23,29 @@ jest.mock("openstack-uicore-foundation/lib/utils/query-actions", () => ({ }) })); -jest.mock("openstack-uicore-foundation/lib/components", () => ({ - UploadInputV3: ({ id, onUploadComplete, onUploadStart, value }) => ( -
- -
- ) -})); + + + ) + }) +); jest.mock( "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield", diff --git a/src/pages/companies/components/company-dialog.js b/src/pages/companies/components/company-dialog.js index cc332ee7d..7bbe62a97 100644 --- a/src/pages/companies/components/company-dialog.js +++ b/src/pages/companies/components/company-dialog.js @@ -33,7 +33,7 @@ import { Typography } from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; -import { UploadInputV3 } from "openstack-uicore-foundation/lib/components"; +import UploadInputV3 from "openstack-uicore-foundation/lib/components/inputs/upload-input-v3"; import { getCountryList } from "openstack-uicore-foundation/lib/utils/query-actions"; import Table from "openstack-uicore-foundation/lib/components/mui/table"; import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; diff --git a/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js b/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js index ed5e0640b..b067df348 100644 --- a/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js +++ b/src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js @@ -19,7 +19,7 @@ import { } from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; import AdditionalInputList from "openstack-uicore-foundation/lib/components/mui/formik-inputs/additional-input-list"; -import { MuiFormikUpload } from "openstack-uicore-foundation/lib/components"; +import MuiFormikUpload from "openstack-uicore-foundation/lib/components/mui/formik-inputs/upload"; import { ALLOWED_INVENTORY_IMAGE_FORMATS, MAX_INVENTORY_IMAGE_UPLOAD_SIZE, diff --git a/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js b/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js index 13c6edd2e..b8ed5a098 100644 --- a/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js +++ b/src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js @@ -13,7 +13,7 @@ import { import T from "i18n-react"; import * as yup from "yup"; import { FormikProvider, useFormik } from "formik"; -import { MuiFormikUpload } from "openstack-uicore-foundation/lib/components"; +import MuiFormikUpload from "openstack-uicore-foundation/lib/components/mui/formik-inputs/upload"; import AdditionalInputList from "openstack-uicore-foundation/lib/components/mui/formik-inputs/additional-input-list"; import { addIssAfterDateFieldValidator, diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/__tests__/client-form.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/__tests__/client-form.test.js index 95f18bd65..35c1276b4 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/__tests__/client-form.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/__tests__/client-form.test.js @@ -9,21 +9,25 @@ jest.mock("i18n-react/dist/i18n-react", () => ({ default: { translate: (key) => key } })); -jest.mock("openstack-uicore-foundation/lib/components", () => { - const React = require("react"); - const { useField } = require("formik"); - return { - MuiFormikTextField: ({ name, label, ...props }) => { - const [field] = useField(name); - return React.createElement("input", { - "aria-label": label, - id: name, - ...field, - ...props - }); - } - }; -}); +jest.mock( + "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield", + () => { + const React = require("react"); + const { useField } = require("formik"); + return { + __esModule: true, + default: ({ name, label, ...props }) => { + const [field] = useField(name); + return React.createElement("input", { + "aria-label": label, + id: name, + ...field, + ...props + }); + } + }; + } +); describe("ClientForm", () => { beforeEach(() => { diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/index.js index 4280f5926..f4f8c0d6f 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/client-form/index.js @@ -17,7 +17,7 @@ import T from "i18n-react/dist/i18n-react"; import { FormikProvider, useFormik } from "formik"; import * as yup from "yup"; import Box from "@mui/material/Box"; -import { MuiFormikTextField } from "openstack-uicore-foundation/lib/components"; +import MuiFormikTextField from "openstack-uicore-foundation/lib/components/mui/formik-inputs/textfield"; import { DEBOUNCE_WAIT_250 } from "../../../../../../../utils/constants"; const ClientForm = ({ initialValues, onChange }) => { diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/__tests__/edit-cart-form.test.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/__tests__/edit-cart-form.test.js index c220ede42..6482f2aee 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/__tests__/edit-cart-form.test.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/__tests__/edit-cart-form.test.js @@ -29,25 +29,28 @@ jest.mock("../../../../../../../../actions/sponsor-cart-actions", () => ({ })); // Mock the uicore component bundle — prevents setTexts() crash on module init -jest.mock("openstack-uicore-foundation/lib/components", () => { - const React = require("react"); - return { - __esModule: true, - MuiFormItemTable: ({ data }) => - React.createElement( - "div", - null, - (data || []).map((item) => - React.createElement( - "div", - { key: item.form_item_id }, - React.createElement("span", null, item.name) +jest.mock( + "openstack-uicore-foundation/lib/components/mui/form-item-table", + () => { + const React = require("react"); + return { + __esModule: true, + default: ({ data }) => + React.createElement( + "div", + null, + (data || []).map((item) => + React.createElement( + "div", + { key: item.form_item_id }, + React.createElement("span", null, item.name) + ) ) - ) - ), - getCurrentApplicableRate: () => "standard" - }; -}); + ), + getCurrentApplicableRate: () => "standard" + }; + } +); // Mock sub-components used directly by index.js jest.mock("openstack-uicore-foundation/lib/components/mui/notes-modal", () => { diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/index.js index 334571027..092d71263 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/edit-form/index.js @@ -20,10 +20,9 @@ import { Button, Typography } from "@mui/material"; import Box from "@mui/material/Box"; import moment from "moment-timezone"; import { epochToMomentTimeZone } from "openstack-uicore-foundation/lib/utils/methods"; -import { - MuiFormItemTable, +import MuiFormItemTable, { getCurrentApplicableRate -} from "openstack-uicore-foundation/lib/components"; +} from "openstack-uicore-foundation/lib/components/mui/form-item-table"; import { DISCOUNT_TYPES } from "../../../../../../../utils/constants"; import showConfirmDialog from "../../../../../../../components/mui/showConfirmDialog"; diff --git a/yarn.lock b/yarn.lock index 6b20d86b7..0f12c7811 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9068,10 +9068,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.40: - version "5.0.40" - resolved "https://registry.npmjs.org/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.40.tgz#bdef7be6e35a6e29160846c47901eb4fb7c58d42" - integrity sha512-hgLmZprm9VA0aAVEuXttopK+RhmHOR6XnUmDu2lZpy1XK5SKrwRtnPAHK0zzG4dbVSeoodMneCdIj0l/2h4XzA== +openstack-uicore-foundation@5.0.43: + version "5.0.43" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.43.tgz#a0f870bd2d1dd7a97a1b6e78009b5248ca27baab" + integrity sha512-UBIENc7nEhhKEsmaGRKdEIziNhnGypy5bf9ydssEgFB/Fe6Q6gH07x1U8m5s1nXYV9OCneMvLTBH98tprUXlOg== dependencies: use-sync-external-store "^1.6.0"