Skip to content

Commit 8ddc31f

Browse files
authored
Informer - extract private component
1 parent 67a5ec3 commit 8ddc31f

File tree

33 files changed

+769
-65
lines changed

33 files changed

+769
-65
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import React from 'react';
2+
import type { Meta, StoryObj } from '@storybook/react';
3+
import dxInformer from 'devextreme/ui/informer';
4+
import { wrapDxWithReact } from '../utils';
5+
6+
7+
const Informer = wrapDxWithReact(dxInformer);
8+
9+
const textOptions = {
10+
error: 'error',
11+
biggerError: 'bigger error',
12+
bigError: 'really really big and huge error that takes really much space',
13+
superBigError: 'error that will never be able to fit into one line because it is so big and even if it tried to fit it would still not be able to be displayed properly due to its excessive length',
14+
};
15+
16+
const meta: Meta<typeof Informer> = {
17+
title: 'Components/Informer',
18+
component: Informer,
19+
parameters: {
20+
layout: 'padded',
21+
}
22+
};
23+
24+
export default meta;
25+
26+
type Story = StoryObj<typeof Informer>;
27+
28+
export const DefaultInformer: Story = {
29+
args: {
30+
showBackground: true,
31+
width: '100%',
32+
contentAlignment: 'center',
33+
icon: 'errorcircle',
34+
text: 'error',
35+
visible: true,
36+
rtlEnabled: false,
37+
disabled: false,
38+
},
39+
argTypes: {
40+
showBackground: {
41+
control: 'boolean'
42+
},
43+
width: {
44+
options: ['100%', 'auto'],
45+
control: { type: 'radio' }
46+
},
47+
contentAlignment: {
48+
options: ['start', 'center', 'end'],
49+
control: { type: 'radio' }
50+
},
51+
icon: {
52+
options: ['errorcircle', 'bell', 'sun', undefined],
53+
control: { type: 'select' }
54+
},
55+
text: {
56+
options: Object.keys(textOptions),
57+
mapping: textOptions,
58+
control: { type: 'select' }
59+
},
60+
visible: {
61+
control: 'boolean'
62+
},
63+
rtlEnabled: {
64+
control: 'boolean'
65+
},
66+
disabled: {
67+
control: 'boolean'
68+
},
69+
},
70+
render: ({
71+
showBackground,
72+
width,
73+
contentAlignment,
74+
icon,
75+
text,
76+
visible,
77+
rtlEnabled,
78+
disabled,
79+
}) => {
80+
return (
81+
<div style={{ display: 'flex', flexDirection: 'column' }}>
82+
<Informer
83+
width={width}
84+
disabled={disabled}
85+
rtlEnabled={rtlEnabled}
86+
visible={visible}
87+
text={text}
88+
icon={icon}
89+
showBackground={showBackground}
90+
contentAlignment={contentAlignment}
91+
/>
92+
</div>
93+
);
94+
}
95+
};

packages/devextreme-scss/scss/widgets/base/chat/layout/chat-alertlist/_index.scss

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,3 @@
22
display: flex;
33
flex-direction: column;
44
}
5-
6-
.dx-chat-alertlist-error {
7-
align-items: center;
8-
display: flex;
9-
justify-content: center;
10-
}

packages/devextreme-scss/scss/widgets/base/chat/layout/chat-alertlist/_mixins.scss

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
$padding-inline,
77
$error-padding-block,
88
$row-gap,
9-
$icon-size,
10-
$content-column-gap,
119
) {
1210
.dx-chat-alertlist {
1311
padding-block: $padding-block;
@@ -21,13 +19,9 @@
2119
}
2220

2321
.dx-chat-alertlist-error {
24-
color: $error-color;
25-
column-gap: $content-column-gap;
26-
padding-block: $error-padding-block;
27-
}
28-
29-
.dx-chat-alertlist-error-icon {
30-
@include dx-icon(errorcircle);
31-
@include dx-icon-sizing($icon-size);
22+
&.dx-informer {
23+
color: $error-color;
24+
padding-block: $error-padding-block;
25+
}
3226
}
3327
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
.dx-informer {
2+
width: 100%;
3+
align-items: center;
4+
display: flex;
5+
word-break: break-word;
6+
7+
&.dx-informer-alignment-start {
8+
justify-content: flex-start;
9+
align-self: flex-start;
10+
}
11+
12+
&.dx-informer-alignment-center {
13+
justify-content: center;
14+
align-self: center;
15+
}
16+
17+
&.dx-informer-alignment-end {
18+
justify-content: flex-end;
19+
align-self: flex-end;
20+
}
21+
22+
.dx-informer-icon {
23+
display: flex;
24+
}
25+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
@use "../icons" as *;
2+
3+
@mixin informer(
4+
$color,
5+
$background-color,
6+
$border-radius,
7+
$icon-size,
8+
$padding-inline,
9+
$padding-block,
10+
$column-gap,
11+
) {
12+
.dx-informer {
13+
color: $color;
14+
padding-inline: $padding-inline;
15+
padding-block: $padding-block;
16+
column-gap: $column-gap;
17+
}
18+
19+
.dx-informer-bg {
20+
background-color: $background-color;
21+
border-radius: $border-radius;
22+
}
23+
24+
.dx-informer-icon {
25+
& * {
26+
@include dx-icon-sizing($icon-size);
27+
}
28+
}
29+
}

packages/devextreme-scss/scss/widgets/fluent/_index.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
@use "./validation";
1414
@use "./textBox";
1515
@use "./dropDownBox";
16+
@use "./informer";
1617
@use "./list";
1718
@use "./textArea";
1819
@use "./numberBox";

packages/devextreme-scss/scss/widgets/fluent/chat/_index.scss

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
$chat-alerts-padding-inline,
2323
$chat-alert-padding-block,
2424
$chat-alerts-row-gap,
25-
$chat-alert-icon-size,
26-
$chat-alert-content-column-gap,
2725
);
2826
@include chat-messagebox(
2927
$chat-messagebox-padding,

packages/devextreme-scss/scss/widgets/fluent/chat/_sizes.scss

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,8 @@ $chat-messagegroup-alignment-start-gap: 12px !default;
2323
$chat-header-padding: 20px !default;
2424
$chat-information-font-size: 12px !default;
2525

26-
$chat-alert-icon-size: $fluent-base-icon-size !default;
27-
$chat-alert-content-column-gap: null !default;
2826
$chat-alerts-padding-block: null !default;
29-
$chat-alerts-padding-inline: null !default;
27+
$chat-alerts-padding-inline: 8px !default;
3028
$chat-alerts-row-gap: null !default;
3129
$chat-alert-padding-block: null !default;
3230

@@ -59,9 +57,7 @@ $chat-typingindicator-circle-border-radius: 999em !default;
5957
$chat-messagelist-padding: 20px !default;
6058
$chat-messagegroup-padding: 24px !default;
6159

62-
$chat-alert-content-column-gap: 6px !default;
6360
$chat-alerts-padding-block: 12px !default;
64-
$chat-alerts-padding-inline: 20px !default;
6561
$chat-alerts-row-gap: 2px !default;
6662
$chat-alert-padding-block: 6px !default;
6763

@@ -87,9 +83,7 @@ $chat-typingindicator-circle-border-radius: 999em !default;
8783
$chat-messagelist-padding: 16px !default;
8884
$chat-messagegroup-padding: 12px !default;
8985

90-
$chat-alert-content-column-gap: 4px !default;
9186
$chat-alerts-padding-block: 8px !default;
92-
$chat-alerts-padding-inline: 16px !default;
9387
$chat-alerts-row-gap: 2px !default;
9488
$chat-alert-padding-block: 5px !default;
9589

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
@use "../colors" as *;
2+
@use "sass:color";
3+
4+
// adduse
5+
6+
$informer-color: $base-invalid-color !default;
7+
$informer-background-color: null !default;
8+
9+
@if $mode == "light" {
10+
$informer-background-color: lighten(saturate(adjust-hue($base-danger, -358), 0.58), 46.67);
11+
}
12+
13+
@if $mode == "dark" {
14+
$informer-background-color: darken(desaturate($base-danger, 5.06), 53.53);
15+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
@use "../../base/informer";
2+
@use "colors" as *;
3+
@use "sizes" as *;
4+
@use "../../base/informer/mixins" as *;
5+
6+
// adduse
7+
8+
@include informer(
9+
$informer-color,
10+
$informer-background-color,
11+
$informer-border-radius,
12+
$informer-icon-size,
13+
$informer-padding-inline,
14+
$informer-padding-block,
15+
$informer-column-gap,
16+
);

0 commit comments

Comments
 (0)