# 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]};
```