@atlaskit/editor-plugin-text-formatting
Version:
Text-formatting plugin for @atlaskit/editor-core
55 lines • 2.04 kB
JavaScript
import { useMemo } from 'react';
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
import { ButtonsMenuMinimal, ToolbarButtonsStrong, ToolbarButtonsStrongItalic, ResponsiveCustomButtonToolbarMinimal, ResponsiveCustomButtonToolbarCompact, ResponsiveCustomMenuMinimal, ResponsiveCustomMenuCompact } from '../constants';
import { useIconList } from './use-icon-list';
export const useResponsiveIconTypeButtons = ({
toolbarSize,
responsivenessEnabled
}) => {
let ResponsiveCustomButtonToolbar = ResponsiveCustomButtonToolbarCompact;
if (expValEqualsNoExposure('platform_editor_controls', 'cohort', 'variant1')) {
ResponsiveCustomButtonToolbar = ResponsiveCustomButtonToolbarMinimal;
}
const iconTypeList = useMemo(() => ResponsiveCustomButtonToolbar[toolbarSize], [toolbarSize, ResponsiveCustomButtonToolbar]);
if (responsivenessEnabled) {
return iconTypeList;
}
if (expValEqualsNoExposure('platform_editor_controls', 'cohort', 'variant1')) {
return ToolbarButtonsStrong;
} else {
return ToolbarButtonsStrongItalic;
}
};
export const useResponsiveIconTypeMenu = ({
toolbarSize,
responsivenessEnabled
}) => {
let ResponsiveCustomMenu = ResponsiveCustomMenuCompact;
if (expValEqualsNoExposure('platform_editor_controls', 'cohort', 'variant1')) {
ResponsiveCustomMenu = ResponsiveCustomMenuMinimal;
}
const iconTypeList = useMemo(() => ResponsiveCustomMenu[toolbarSize], [toolbarSize, ResponsiveCustomMenu]);
if (responsivenessEnabled) {
return iconTypeList;
}
if (expValEqualsNoExposure('platform_editor_controls', 'cohort', 'variant1')) {
return ButtonsMenuMinimal;
} else {
return ToolbarButtonsStrongItalic;
}
};
export const useResponsiveToolbarButtons = ({
icons,
toolbarSize,
responsivenessEnabled
}) => {
const iconTypeList = useResponsiveIconTypeButtons({
toolbarSize,
responsivenessEnabled
});
const iconsPosition = useIconList({
icons,
iconTypeList
});
return iconsPosition;
};