---
# System prepended metadata

title: DevEx Changelog

---

# DevEx Changelog

This is to track changes to the front end code that affect the developer's experience e.g. new reusable components or changes to the way they are used.

## [#10058](https://github.com/beatchain/beatchain-monorepo/pull/10058)

- :sparkles: New props: `customWidth` and `maxLengthInput` added to `SelectCreatable`.

## [#10032](https://github.com/beatchain/beatchain-monorepo/pull/10032)

- :arrow_up: Upgrade dependancy: `react` and `react-dom` to `18.2.0`    
    - :arrow_up: Upgrade dependancy: `@types/node` to `18.13.0`.
    - :arrow_up: Upgrade dependancy: `@types/react` to `18.0.28`.
    - :arrow_up: Upgrade dependancy: `@types/react-dom` to `18.0.10`.
- :heavy_plus_sign: New dependancy: `@acusti/react-code-input`. To replace `react-code-input` but not implemented yet.
- :arrow_up: Upgrade dependancy: `emoji-mart` to `5.5.2`.
    - :heavy_plus_sign: New dependancy: `@emoji-mart/data` and `@emoji-mart/react`.
- :heavy_plus_sign: New dependancy: `@hedgedoc/html-to-react`.
    - :heavy_minus_sign: Remove dependancy: `react-html-parser`.
- :heavy_plus_sign: New dependancy: `@react-spring/web`.
    - :heavy_minus_sign: Remove dependancy: `react-spring`.
- :arrow_up: Upgrade dependancy: `qrcode.react` to `3.1.0`.
- :arrow_up: Upgrade dependancy: `rc-slider` to `10.1.1`.
- :arrow_up: Upgrade dependancy: `react-div-100vh` to `0.7.0`.
- :arrow_up: Upgrade dependancy: `react-select` to `5.4.0`.
- :arrow_up: Upgrade dependancy: `react-switch` to `7.0.0`.
- :heavy_minus_sign: Remove dependancy: `use-interval`.
- :fire: Delete component: `app/PageLoader`.


## [#10001](https://github.com/beatchain/beatchain-monorepo/pull/10001)

- :goal_net: Add typescript version of `no-use-before-define`.

## [#9989](https://github.com/beatchain/beatchain-monorepo/pull/9989)

- :sparkles: New component: `Stepper`.


## [#9978](https://github.com/beatchain/beatchain-monorepo/pull/9978)

- :bug: Fix scrollfade showing when there is no hidden content.


## [#9889](https://github.com/beatchain/beatchain-monorepo/pull/9889)

- :sparkles: Add new prop value: `lg-responsive` to `Modal` size.


## [#9879](https://github.com/beatchain/beatchain-monorepo/pull/9879)

- :fire: Delete `constructQueryParam`, use `URLSearchParams` instead.
- :fire: Delete `NoSubscriptionBlocker`.
- :fire: Delete `AdSettings`.
- :fire: Remove `socials`, `spotifyProfileUrl` and `hasSocialProfileForPosting` from `useActiveArtist`.
- :fire: Remove `onboardedSocial`, `fugaArtistId`, `orgId`, `genres`, `scrapedPlatforms`and `appWebLogo` from `Artist` type.
- :label: Comment out `ad_account`, `facebookPixel` and `facebook_pixel` in `Artist` type.


## [#9816](https://github.com/beatchain/beatchain-monorepo/pull/9816)

- :fire: Delete `useAlertModal`.
- :fire: Delete `useLogOut`.
- :fire: Delete `useModal`.
- :fire: Delete `Alert`.
- :fire: Delete `ModalPadding`.
- :fire: Delete `UnauthorizedModal`.
- :fire: Delete `ui` store and `ModalWrapper`.
- :fire: Remove `dark` from `TextArea`.
- :fire:  Remove `isLight` from `Input`.
- :fire:  Delete `DspLinksGrid`.
- :fire:  Remove `isLightMode` from `Box`.
- :fire:  Delete `Dialogue`.
- :fire:  Delete `CloseButton`.


## [#9814](https://github.com/beatchain/beatchain-monorepo/pull/9814)

- :sparkles: Add new prop: `overlayColorName` to `PageLoader`.


## [#9806](https://github.com/beatchain/beatchain-monorepo/pull/9806)

- :fire: delete `useOpenWallet`.


## [#9795](https://github.com/beatchain/beatchain-monorepo/pull/9795)

- :fire: Remove `lwarning` from `theme`.
- :lipstick: Change `warning` from `rgb(164, 37, 59)` to `rgb(241, 96, 85)` in `theme`.

## [#9770](https://github.com/beatchain/beatchain-monorepo/pull/9770)

- :sparkles: Add new props: `isFullWidth` and `onGroupSelect` to `Select`.


## [#9754](https://github.com/beatchain/beatchain-monorepo/pull/9754)

- :sparkles: New helper: `toast`. Use instead of directy from `react-toastify`.


## [#9748](https://github.com/beatchain/beatchain-monorepo/pull/9748)

- :sparkles: New prop: `isNotScrollable` added to `TabsItem`.
- :sparkles: New prop: `templateRows` added to `EquallySpacedColumn`.
- :sparkles: New prop: `isFullHeight` added to `EquallySpacedRow`.


## [#9739](https://github.com/beatchain/beatchain-monorepo/pull/9739)

- :fire: Remove `isFullWidth` and `useWhiteText` from `ToggleWithLabels`.
- :fire: Delete never used release step component: `CheckIsExistingArtist`.


## [#9733](https://github.com/beatchain/beatchain-monorepo/pull/9733)

- :fire: Delete `ModalFooter`.


## [#9728](https://github.com/beatchain/beatchain-monorepo/pull/9728)

- :sparkles: Add `hasSavedProfile` and `getSavedProfile` helpers to `useSocials`.
- :fire: Delete hook: `useIsSocialConnected`.
- 

## [#9726](https://github.com/beatchain/beatchain-monorepo/pull/9726)

- :label: Change `isInModal`to `isInBox` in 'SelectCreatable`.
- :sparkles: New component: `Dropdown`.


## [#9719](https://github.com/beatchain/beatchain-monorepo/pull/9719)

- :fire: Delete old `Budget` step component.


## [#9715](https://github.com/beatchain/beatchain-monorepo/pull/9715)

- :fire: Remove `style="background-color: black;"` from `body` tag in all HTML files.
- :lipstick: Change `background-color` of `body` from `white` to `theme.black` in `App.styled`.
- :lipstick: Use `theme.lgrey` instead of `rgb(128,128,128)` in `EditHypeLinkLink`.
- :lipstick: Use `theme.black` instead of `black` in `ErrorPage`.
- :lipstick: Change `defaultColors.backgroundColour` from `rgb(0,0,0)` to `rgb(8, 8, 8)` in `hypelinks.config`.
- :lipstick: Change `background` from `rgb(12, 12, 12)` to `rgb(8, 8, 8)` in `theme`.
- :fire: Remove `hasLogOutButton` and `isLightMode` from `FormPage`.
- :fire: Remove `isLightMode` from `Autosuggest`.
- :sparkles: New prop: `isInModal` added to `Autosuggest`.
- :fire: Remove `isLightMode` from `DashboardRow`.


## [#9713](https://github.com/beatchain/beatchain-monorepo/pull/9713)

- :sparkles: New prop: `maxWidth` in `WizardStep`.


## [#9704](https://github.com/beatchain/beatchain-monorepo/pull/9704)

- :fire: Remove actions: `forceChangePassword` and `forceChangePasswordError`.
- :fire: Remove sagas: `forceChangePasswordSaga` and `forceChangePasswordSuccessSaga`.
- :fire: Remove `FORCE_CHANGE_PASSWORD` from`AuthState`.


## [#9703](https://github.com/beatchain/beatchain-monorepo/pull/9703)

- :fire: Remove actions: `requestResetPassword`, `requestResetPasswordSuccess`, `requestResetPasswordError`,  `resetPassword`, `resetPasswordSuccess` and `resetPasswordError`.
- :fire: Remove sagas: `requestResetPasswordSaga` and `resetPasswordSaga`.
- :fire: Remove `REQUEST_RESET_PASSWORD` and `RESET_PASSWORD` from `AuthState`


## [#9702](https://github.com/beatchain/beatchain-monorepo/pull/9702)

- :sparkles: New hook: `useScrapeInsights`.


## [#9701](https://github.com/beatchain/beatchain-monorepo/pull/9701)

- :fire: Removed args: `exact` and `use3DecimalPlaces` from `formatCurrency` and `getFormattedAmountWithCurrency`.
- :sparkles: Added arg: `options` to `formatCurrency` and `getFormattedAmountWithCurrency`.
```diff
- formatCurrency(cost, props.currency, false, true)
+ formatCurrency(cost, props.currency, { mantissa: 3 })
```
- :fire: Removed `isLabelEditable` from `ListPage`.
- :sparkles: New prop: `isNotWrappedInCard` in `WizardStep`.


## [#9699](https://github.com/beatchain/beatchain-monorepo/pull/9699)

- :heavy_minus_sign: Uninstall `universal-cookie`. Use `js-cookie` package instead in sagas etc.
-  :heavy_plus_sign: Installed `react-cookie` and wrapped `App` in `CookieProvider`. `useCookies` returns the current cookies and allows setting and removing cookies.
	```jsx
	const [cookies, setCookie, removeCookie] = useCookies(['cookieKey']);
    ```
- :sparkles: New hook: `useCookie`. Wrapper around `useCookies`. Appends `ActId` to cookie key and handles expiration in days.
	```jsx
	const [cookie, setCookie, removeCookie] = useCookie('cookieKey');
    ```
- :fire: Remove `isLightMode` from `ProgressCircle`.
- :fire: Delete `BoxInBoxInBox`. Replaced with `Box`.
- :fire: Remove `isDisabled`, `tooltip` and `tooltipText` from `TabsItem`.
- :truck: Rename `infographics/BoxInBoxWithDropdown` to `common/BoxWithDropdown`
- :fire: Remove `isLight` from `Toggle`.
- :fire: Remove `isLightMode`, `notes` from `Wizard` and `WizardStep`.
- :fire: Remove `type`, `isFullHeight` and `maxWidth` from `WizardStep`.
- :fire: Remove `isModal` from 'Wizard`.
- :fire: Remove `isLightMode` from `ReleasePreview`.


## [#9696](https://github.com/beatchain/beatchain-monorepo/pull/9696)

- :lipstick: Revised greys to 18 per step with 8 base
```diff
- grey: 'rgb(119, 119, 119)',
- mgrey: 'rgb(64, 64, 64)',
- dgrey: 'rgb(48, 48, 48)',
- vdgrey: 'rgb(32, 32, 32)',
- vvdgrey: 'rgb(16, 16, 16)',
+ grey: 'rgb(98, 98, 98)',
+ mgrey: 'rgb(80, 80, 80)',
+ dgrey: 'rgb(62, 62, 62)',
+ vdgrey: 'rgb(44, 44, 44)',
+ vvdgrey: 'rgb(26, 26, 26)',
  black: 'rgb(8, 8, 8)',
```


## [#9687](https://github.com/beatchain/beatchain-monorepo/pull/9687)

- :fire: Remove `templateColumns` and `templateRows` from `Box`.
- :label: Add `space-between` as option for `justifyContent` in `EquallySpacedRow`.
- :fire: Delete component: `Column`.
- :fire: Remove unused props from `Row`.
- :label: Rename `ai` to `alignItems` in `Row`.


## [#9685](https://github.com/beatchain/beatchain-monorepo/pull/9685)

- :fire: Delete component `EditBudgetDialogue` .
- :wastebasket: Remove `openEditBudgetDialogue` from `Budget`. (in favor credits budget step)
- :lipstick: Added colour: `lwarning`. For contrast in the new dark modal.
```diff
+ lwarning: 'rgb(241, 96, 85)'
```
- :sparkles: Modals throughout the app are using dark mode modals
- :construction: The modal with expiring token is WIP until saga updates are made.


## [#9684](https://github.com/beatchain/beatchain-monorepo/pull/9684)

- :fire: Remove `isContentPaddedForScrollbar` from `Scrollbars`.
- :sparkles: New props: `hasPadding` and `showTrack` in`Scrollbars`


## [#9683](https://github.com/beatchain/beatchain-monorepo/pull/9683)

- :label: Rename `h` to `boxHeight` in `Box`.
- :label: Rename `ji` to `justifyItems` in `InfoPair`.


## [#9681](https://github.com/beatchain/beatchain-monorepo/pull/9681)

- :bug: Bring back page titles to aid navigation
- :sparkles: New prop: `wrapperElement` in `ConditionalWrapper`.
- :wastebasket: Old prop: `wrapper`. Use `wrapperElement` instead. This fixes the issue with `wrapper` being defined every render and the lint warning that goes with that.
````diff
<ConditionalWrapper
  condition={condition}
-  wrapper={children => <Tooltip id="tooltip_id">{children}</Scrollbars>}
+  wrapperElement={<Tooltip id="tooltip_id" />}
>
  <Button text="Button" />
</ConditionalWrapper>
````

## [#9661](https://github.com/beatchain/beatchain-monorepo/pull/9661)

- :fire: Delete`useMediaLibrary` completely as well as all the old code in redux and `ModalWrapper`.
- :sparkles: New hook: `useToggle`. Returns a value and a function to toggle value.
- :fire: Removed `isLight` from `Select`, `SelectCreatable` and `getReactSelectStyles`.
- :sparkles: Added `isInModal` to `SelectCreatable`. This is passed into `getReactSelectStyles` as `isInBox`.
- :sparkles: New component: `AlertModal`. Abstraction of `Modal` for small dialogues.
  ```jsx
  <AlertModal
    isShown={isDeleteDialogueOpen}
    hide={toggleIsDeleteDialogueOpen}
    headerText="Delete"
    text="Are you sure you want to delete this item?"
    actionButton={{ text: 'Delete', onPress: deleteItem }}
  />
  ```
- ~~:sparkles: New props:`h` (height), `templateColumns` and `templateRows` in `Box`.~~
- ~~:label: Replace `isCentered` with `ji` (justify content) in `InfoPair`.~~
- New component: `MediaLibraryModal`. Wraps the main `MediaLibrary` in `Modal` and handles all the insert media logic.
  ```jsx
  <MediaLibraryModal
    isShown={isMediaLibraryOpen}
    hide={toggleMediaLibrary}
    headerText="Insert Media"
    onInsert={props.onAddMedia!}
    selectedItemUrl={props.mediaUrl}
    accept={props.accept}
    dropzoneText={props.dropzoneText}
  />
  ```
- ~~:sparkles: New component: `Column`~~
- :sparkles: New prop: `isInModal` in `Input`. This can be used alone or in combination with `isInBox` to make inputs even lighter.
- :sparkles: New prop:`isInModal` in `Select` and `getReactSelectStyles`. This is used in combination with `isInBox` to make select inputs even lighter.
- :sparkles: New prop: `isCompact` in `ToggleButton`. This makes it fit content, use Heading text and have a smaller icon.
- :lipstick: `mgrey` changed from `rgb(219, 219, 219)` (between `lgrey` and `vlgrey`) to `rgb(64, 64, 64)` (between `grey` and `dgrey`).
- :lipstick: `black` changed from `rgb(0, 0, 0)` to `rgb(8, 8, 8)`.


## [#9660](https://github.com/beatchain/beatchain-monorepo/pull/9660)

- :sparkles: New prop: `isButtonOnly` in `AudioPlayer`. This can be used to display just a play/pause button.


## [#9657](https://github.com/beatchain/beatchain-monorepo/pull/9657)

-  :fire: Deleted`usePaywall` and other paywall files from codebase.
- :fire: Removed `isLightMode` from `TrackApprovalGrid`, `BoxInBoxWithDropdown` and `TextCollapseBox`.
- :fire: Removed `isDarkBg` from `ToggleButton`. Dark mode style used by default.
- :sparkles: New prop: `colourName` added to `Text`. This can be used with any typography element.
```diff
- <DescriptionTextPink>{message}</DescriptionTextPink>
+ <DescriptionText colourName="tertiary">{message}</DescriptionText>
```

## [#9640](https://github.com/beatchain/beatchain-monorepo/pull/9640)

- :sparkles: New declarative `Modal` component. Uses React portal to render it's children at the root of the app.
    ```jsx
    <Modal
      isShown={isShown}
      hide={toggleIsShown}
      headerText="Modal Header"
    >
      <Component />
    </Modal>
    ```
- :sparkles: New component: `ButtonWithTooltip`. Wraps `Button` in `Tooltip`. Could possibly use `ConditionalWrapper` in the future.
    ```jsx
    <ButtonWithTooltip
      tooltip="tooltip text"
      text="Button text"
      onPress={onPress}
    />
    ```
- :fire: Removed `isLightMode` from `Version` and `KpiWrapper`.
- :fire: Removed `useDynamicColor` from `KpiWrapper`.

## [#9583](https://github.com/beatchain/beatchain-monorepo/pull/9583)

- :label:`ColourName` added to types. To be used whenever a theme colour name is used.
```diff
+ import { ColourName } from 'ui/types';

- colour: string;
+ colour: ColourName;

- ${props =>
-   props.theme[props.colour] && `colour: ${props.theme[props.colour]};`}
+ colour: ${props.theme[props.colour]};
```