mirror of
https://github.com/Unleash/unleash.git
synced 2025-04-10 01:16:39 +02:00
feat: re-order message banners (#4995)
https://linear.app/unleash/issue/2-1494/re-order-message-banners - Re-orders message banners to fit into this logic: >1. Maintenance banner >2. External message banner(s) - Most likely coming from Unleash >3. Internal message banner(s) - Renames the feature flag to better reflect the feature behavior; - Lays a basic skeleton structure for this new feature;
This commit is contained in:
parent
bc96216daa
commit
65f424156c
@ -20,6 +20,8 @@ import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
|||||||
import MaintenanceBanner from './maintenance/MaintenanceBanner';
|
import MaintenanceBanner from './maintenance/MaintenanceBanner';
|
||||||
import { styled } from '@mui/material';
|
import { styled } from '@mui/material';
|
||||||
import { InitialRedirect } from './InitialRedirect';
|
import { InitialRedirect } from './InitialRedirect';
|
||||||
|
import { InternalMessageBanners } from './messageBanners/internalMessageBanners/InternalMessageBanners';
|
||||||
|
import { ExternalMessageBanners } from './messageBanners/externalMessageBanners/ExternalMessageBanners';
|
||||||
|
|
||||||
const StyledContainer = styled('div')(() => ({
|
const StyledContainer = styled('div')(() => ({
|
||||||
'& ul': {
|
'& ul': {
|
||||||
@ -63,6 +65,8 @@ export const App = () => {
|
|||||||
)}
|
)}
|
||||||
show={<MaintenanceBanner />}
|
show={<MaintenanceBanner />}
|
||||||
/>
|
/>
|
||||||
|
<ExternalMessageBanners />
|
||||||
|
<InternalMessageBanners />
|
||||||
<StyledContainer>
|
<StyledContainer>
|
||||||
<ToastRenderer />
|
<ToastRenderer />
|
||||||
<Routes>
|
<Routes>
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
import { MessageBanner } from 'component/common/MessageBanner/MessageBanner';
|
||||||
|
|
||||||
|
export const ExternalMessageBanners = () => {
|
||||||
|
// TODO: Implement. If we allow multiple internal message banners, then perhaps we should allow the same for external message banners.
|
||||||
|
|
||||||
|
return <MessageBanner />;
|
||||||
|
};
|
@ -0,0 +1,30 @@
|
|||||||
|
import { MessageBanner } from 'component/common/MessageBanner/MessageBanner';
|
||||||
|
import { useUiFlag } from 'hooks/useUiFlag';
|
||||||
|
|
||||||
|
export const InternalMessageBanners = () => {
|
||||||
|
const internalMessageBanners = useUiFlag('internalMessageBanners');
|
||||||
|
|
||||||
|
if (!internalMessageBanners) return null;
|
||||||
|
|
||||||
|
// TODO: Implement. `messageBanners` should come from a `useMessageBanners()` hook.
|
||||||
|
|
||||||
|
const mockMessageBanners = [
|
||||||
|
{
|
||||||
|
message: 'Test 1',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
message: 'Test 2',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
message: 'Test 3',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{mockMessageBanners.map((messageBanner) => (
|
||||||
|
<MessageBanner key={messageBanner.message} />
|
||||||
|
))}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
@ -13,7 +13,6 @@ import { FeedbackCESProvider } from 'component/feedback/FeedbackCESContext/Feedb
|
|||||||
import { AnnouncerProvider } from 'component/common/Announcer/AnnouncerProvider/AnnouncerProvider';
|
import { AnnouncerProvider } from 'component/common/Announcer/AnnouncerProvider/AnnouncerProvider';
|
||||||
import { InstanceStatus } from 'component/common/InstanceStatus/InstanceStatus';
|
import { InstanceStatus } from 'component/common/InstanceStatus/InstanceStatus';
|
||||||
import { UIProviderContainer } from 'component/providers/UIProvider/UIProviderContainer';
|
import { UIProviderContainer } from 'component/providers/UIProvider/UIProviderContainer';
|
||||||
import { MessageBanner } from 'component/common/MessageBanner/MessageBanner';
|
|
||||||
|
|
||||||
window.global ||= window;
|
window.global ||= window;
|
||||||
|
|
||||||
@ -25,7 +24,6 @@ ReactDOM.render(
|
|||||||
<AnnouncerProvider>
|
<AnnouncerProvider>
|
||||||
<FeedbackCESProvider>
|
<FeedbackCESProvider>
|
||||||
<InstanceStatus>
|
<InstanceStatus>
|
||||||
<MessageBanner />
|
|
||||||
<ScrollTop />
|
<ScrollTop />
|
||||||
<App />
|
<App />
|
||||||
</InstanceStatus>
|
</InstanceStatus>
|
||||||
|
@ -66,7 +66,7 @@ export type UiFlags = {
|
|||||||
privateProjects?: boolean;
|
privateProjects?: boolean;
|
||||||
accessOverview?: boolean;
|
accessOverview?: boolean;
|
||||||
dependentFeatures?: boolean;
|
dependentFeatures?: boolean;
|
||||||
internalMessageBanner?: boolean;
|
internalMessageBanners?: boolean;
|
||||||
[key: string]: boolean | Variant | undefined;
|
[key: string]: boolean | Variant | undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ exports[`should create default config 1`] = `
|
|||||||
"featuresExportImport": true,
|
"featuresExportImport": true,
|
||||||
"filterInvalidClientMetrics": false,
|
"filterInvalidClientMetrics": false,
|
||||||
"googleAuthEnabled": false,
|
"googleAuthEnabled": false,
|
||||||
"internalMessageBanner": false,
|
"internalMessageBanners": false,
|
||||||
"lastSeenByEnvironment": false,
|
"lastSeenByEnvironment": false,
|
||||||
"maintenanceMode": false,
|
"maintenanceMode": false,
|
||||||
"messageBanner": {
|
"messageBanner": {
|
||||||
@ -134,7 +134,7 @@ exports[`should create default config 1`] = `
|
|||||||
"featuresExportImport": true,
|
"featuresExportImport": true,
|
||||||
"filterInvalidClientMetrics": false,
|
"filterInvalidClientMetrics": false,
|
||||||
"googleAuthEnabled": false,
|
"googleAuthEnabled": false,
|
||||||
"internalMessageBanner": false,
|
"internalMessageBanners": false,
|
||||||
"lastSeenByEnvironment": false,
|
"lastSeenByEnvironment": false,
|
||||||
"maintenanceMode": false,
|
"maintenanceMode": false,
|
||||||
"messageBanner": {
|
"messageBanner": {
|
||||||
|
@ -34,7 +34,7 @@ export type IFlagKey =
|
|||||||
| 'disableMetrics'
|
| 'disableMetrics'
|
||||||
| 'transactionalDecorator'
|
| 'transactionalDecorator'
|
||||||
| 'useLastSeenRefactor'
|
| 'useLastSeenRefactor'
|
||||||
| 'internalMessageBanner';
|
| 'internalMessageBanners';
|
||||||
|
|
||||||
export type IFlags = Partial<{ [key in IFlagKey]: boolean | Variant }>;
|
export type IFlags = Partial<{ [key in IFlagKey]: boolean | Variant }>;
|
||||||
|
|
||||||
@ -158,8 +158,8 @@ const flags: IFlags = {
|
|||||||
process.env.UNLEASH_EXPERIMENTAL_USE_LAST_SEEN_REFACTOR,
|
process.env.UNLEASH_EXPERIMENTAL_USE_LAST_SEEN_REFACTOR,
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
internalMessageBanner: parseEnvVarBoolean(
|
internalMessageBanners: parseEnvVarBoolean(
|
||||||
process.env.UNLEASH_EXPERIMENTAL_INTERNAL_MESSAGE_BANNER,
|
process.env.UNLEASH_EXPERIMENTAL_INTERNAL_MESSAGE_BANNERS,
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user