pds-dev-kit-web 1.4.22 → 1.4.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +2 -2
  2. package/dist/index.d.ts +4 -4
  3. package/dist/index.js +7 -3
  4. package/dist/src/common/styles/colorSet/PaletteColor_Dark.json +3 -1
  5. package/dist/src/common/styles/colorSet/PaletteColor_light.json +3 -1
  6. package/dist/src/common/styles/colorSet/UIColor.json +4 -1
  7. package/dist/src/common/styles/colorSet/index.d.ts +7 -0
  8. package/dist/src/common/styles/colorSet/ui-type.d.ts +3 -0
  9. package/dist/src/desktop/components/AdminListHeader/HeaderBar.js +1 -1
  10. package/dist/src/desktop/components/BasicChatListItem/BasicChatListItem.d.ts +15 -0
  11. package/dist/src/desktop/components/BasicChatListItem/BasicChatListItem.js +134 -0
  12. package/dist/src/desktop/components/BasicChatListItem/index.d.ts +1 -0
  13. package/dist/src/desktop/components/BasicChatListItem/index.js +8 -0
  14. package/dist/src/desktop/components/ChatList/Body.d.ts +7 -0
  15. package/dist/src/desktop/components/ChatList/Body.js +90 -0
  16. package/dist/src/desktop/components/ChatList/ChatList.d.ts +23 -0
  17. package/dist/src/desktop/components/ChatList/ChatList.js +93 -0
  18. package/dist/src/desktop/components/ChatList/ChatTextField.d.ts +7 -0
  19. package/dist/src/desktop/components/ChatList/ChatTextField.js +41 -0
  20. package/dist/src/desktop/components/ChatList/Footer.d.ts +7 -0
  21. package/dist/src/desktop/components/ChatList/Footer.js +27 -0
  22. package/dist/src/desktop/components/ChatList/Header.d.ts +5 -0
  23. package/dist/src/desktop/components/ChatList/Header.js +50 -0
  24. package/dist/src/desktop/components/ChatList/index.d.ts +1 -0
  25. package/dist/src/desktop/components/ChatList/index.js +8 -0
  26. package/dist/src/desktop/components/ChatList/useAutoScrollToBottom.d.ts +10 -0
  27. package/dist/src/desktop/components/ChatList/useAutoScrollToBottom.js +48 -0
  28. package/dist/src/desktop/components/ContextMenu/ContextMenu.d.ts +2 -1
  29. package/dist/src/desktop/components/ContextMenu/ContextMenu.js +6 -3
  30. package/dist/src/desktop/components/Dropdown/Dropdown.js +1 -1
  31. package/dist/src/desktop/components/index.d.ts +3 -1
  32. package/dist/src/desktop/components/index.js +5 -1
  33. package/dist/src/desktop/index.d.ts +2 -2
  34. package/dist/src/desktop/index.js +4 -2
  35. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/ContentsContainer.d.ts +1 -1
  36. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/ContentsContainer.js +2 -1
  37. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/variation/WFE.d.ts +2 -1
  38. package/dist/src/desktop/layout/LayoutWF/Containers/ContentsContainer/variation/WFE.js +41 -11
  39. package/dist/src/desktop/layout/LayoutWF/ContainersBox/ContainersBox.d.ts +1 -1
  40. package/dist/src/desktop/layout/LayoutWF/ContainersBox/ContainersBox.js +2 -0
  41. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/ContentsContainer.d.ts +1 -1
  42. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/ContentsContainer.js +3 -1
  43. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTT.d.ts +11 -0
  44. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTT.js +65 -0
  45. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/index.d.ts +1 -0
  46. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/index.js +3 -1
  47. package/dist/src/desktop/layout/LayoutWT/ContainersBox/ContainersBox.d.ts +1 -1
  48. package/dist/src/desktop/layout/LayoutWT/ContainersBox/ContainersBox.js +12 -4
  49. package/dist/src/hybrid/components/Spacing/Spacing.js +1 -1
  50. package/dist/src/mobile/components/BasicChatListItem/BasicChatListItem.d.ts +15 -0
  51. package/dist/src/mobile/components/BasicChatListItem/BasicChatListItem.js +134 -0
  52. package/dist/src/mobile/components/BasicChatListItem/index.d.ts +1 -0
  53. package/dist/src/mobile/components/BasicChatListItem/index.js +8 -0
  54. package/dist/src/mobile/components/ChatList/Body.d.ts +7 -0
  55. package/dist/src/mobile/components/ChatList/Body.js +93 -0
  56. package/dist/src/mobile/components/ChatList/ChatList.d.ts +23 -0
  57. package/dist/src/mobile/components/ChatList/ChatList.js +93 -0
  58. package/dist/src/mobile/components/ChatList/ChatTextField.d.ts +7 -0
  59. package/dist/src/mobile/components/ChatList/ChatTextField.js +41 -0
  60. package/dist/src/mobile/components/ChatList/Footer.d.ts +7 -0
  61. package/dist/src/mobile/components/ChatList/Footer.js +27 -0
  62. package/dist/src/mobile/components/ChatList/Header.d.ts +5 -0
  63. package/dist/src/mobile/components/ChatList/Header.js +50 -0
  64. package/dist/src/mobile/components/ChatList/index.d.ts +1 -0
  65. package/dist/src/mobile/components/ChatList/index.js +8 -0
  66. package/dist/src/mobile/components/ChatList/useAutoScrollToBottom.d.ts +10 -0
  67. package/dist/src/mobile/components/ChatList/useAutoScrollToBottom.js +48 -0
  68. package/dist/src/mobile/components/ChatList/useTimeout.d.ts +6 -0
  69. package/dist/src/mobile/components/ChatList/useTimeout.js +11 -0
  70. package/dist/src/mobile/components/ContextMenu/ContextMenu.d.ts +2 -1
  71. package/dist/src/mobile/components/ContextMenu/ContextMenu.js +6 -3
  72. package/dist/src/mobile/components/Dropdown/Dropdown.js +1 -1
  73. package/dist/src/mobile/components/index.d.ts +3 -1
  74. package/dist/src/mobile/components/index.js +5 -1
  75. package/dist/src/mobile/index.d.ts +2 -2
  76. package/dist/src/mobile/index.js +3 -1
  77. package/package.json +1 -1
  78. package/release-note.md +9 -15
@@ -71,7 +71,9 @@ var ContainersBox = function (_a) {
71
71
  WTP_1: react_1.default.createElement(react_1.default.Fragment, null),
72
72
  WTQ_1: react_1.default.createElement(react_1.default.Fragment, null),
73
73
  WTS_1: react_1.default.createElement(react_1.default.Fragment, null),
74
- WTS_2: react_1.default.createElement(react_1.default.Fragment, null)
74
+ WTS_2: react_1.default.createElement(react_1.default.Fragment, null),
75
+ WTT_1: react_1.default.createElement(react_1.default.Fragment, null),
76
+ WTT_2: react_1.default.createElement(react_1.default.Fragment, null)
75
77
  }[layoutType],
76
78
  react_1.default.createElement(S_RightBox, null,
77
79
  {
@@ -113,7 +115,9 @@ var ContainersBox = function (_a) {
113
115
  WTP_1: react_1.default.createElement(react_1.default.Fragment, null),
114
116
  WTQ_1: react_1.default.createElement(react_1.default.Fragment, null),
115
117
  WTS_1: react_1.default.createElement(react_1.default.Fragment, null),
116
- WTS_2: react_1.default.createElement(react_1.default.Fragment, null)
118
+ WTS_2: react_1.default.createElement(react_1.default.Fragment, null),
119
+ WTT_1: (react_1.default.createElement(Containers_1.PageMenuContainer, { pageMenuType: "top_page_menu", pageMenuContent: pageMenuContent, containerColor: containerColor, areaColor: areaColor })),
120
+ WTT_2: (react_1.default.createElement(Containers_1.PageMenuContainer, { pageMenuType: "top_page_menu", pageMenuContent: pageMenuContent, containerColor: containerColor, areaColor: areaColor }))
117
121
  }[layoutType],
118
122
  {
119
123
  WTA_1: react_1.default.createElement(react_1.default.Fragment, null),
@@ -154,7 +158,9 @@ var ContainersBox = function (_a) {
154
158
  WTP_1: react_1.default.createElement(react_1.default.Fragment, null),
155
159
  WTQ_1: react_1.default.createElement(react_1.default.Fragment, null),
156
160
  WTS_1: react_1.default.createElement(react_1.default.Fragment, null),
157
- WTS_2: react_1.default.createElement(react_1.default.Fragment, null)
161
+ WTS_2: react_1.default.createElement(react_1.default.Fragment, null),
162
+ WTT_1: react_1.default.createElement(react_1.default.Fragment, null),
163
+ WTT_2: react_1.default.createElement(react_1.default.Fragment, null)
158
164
  }[layoutType],
159
165
  react_1.default.createElement(S_BottomWrapper, { layoutType: layoutType },
160
166
  {
@@ -196,7 +202,9 @@ var ContainersBox = function (_a) {
196
202
  WTP_1: (react_1.default.createElement(Containers_1.SubMenuContainer, { subMenuType: "left_sub_menu", subMenuContent: subMenuContent, containerColor: containerColor, areaColor: areaColor })),
197
203
  WTQ_1: '',
198
204
  WTS_1: '',
199
- WTS_2: ''
205
+ WTS_2: '',
206
+ WTT_1: '',
207
+ WTT_2: ''
200
208
  }[layoutType],
201
209
  react_1.default.createElement(Containers_1.ContentsContainer, { layoutType: layoutType, content1: content1, content2: content2, containerColor: containerColor, areaColor: areaColor, container1Ref: container1Ref })))));
202
210
  };
@@ -29,7 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  var react_1 = __importDefault(require("react"));
30
30
  var styled_components_1 = __importStar(require("styled-components"));
31
31
  function Spacing(_a) {
32
- var _b = _a.size, size = _b === void 0 ? 'spacing_a' : _b, _c = _a.spacingType, spacingType = _c === void 0 ? 'height' : _c;
32
+ var size = _a.size, _b = _a.spacingType, spacingType = _b === void 0 ? 'height' : _b;
33
33
  return react_1.default.createElement(S_Spacing, { size: size, spacingType: spacingType });
34
34
  }
35
35
  var spacing_a = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: ", ";\n min-height: ", ";\n min-width: ", ";\n width: ", ";\n"], ["\n height: ", ";\n min-height: ", ";\n min-width: ", ";\n width: ", ";\n"])), function (_a) {
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import { PDSTextType, PDSValueOption } from '../../../common';
3
+ declare type Props = {
4
+ titleText?: PDSTextType;
5
+ contentText?: PDSTextType;
6
+ leftImageMode?: 'none' | 'use';
7
+ imageSrc?: string;
8
+ hoverBtnMode?: 'none' | 'use';
9
+ contextMenuOptionArray?: PDSValueOption[];
10
+ contextMenuState?: 'normal' | 'disabled';
11
+ colorTheme?: 'seller' | 'subscriber';
12
+ onClickContextMenu?: (option: PDSValueOption) => void;
13
+ };
14
+ declare function BasicChatListItem({ titleText, contentText, leftImageMode, imageSrc, hoverBtnMode, contextMenuOptionArray, onClickContextMenu, contextMenuState, colorTheme }: Props): JSX.Element;
15
+ export default BasicChatListItem;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ var react_1 = __importStar(require("react"));
30
+ var styled_components_1 = __importDefault(require("styled-components"));
31
+ var hybrid_1 = require("../../../hybrid");
32
+ var ContextMenu_1 = require("../ContextMenu");
33
+ var ContextMenuItem_1 = require("../ContextMenuItem");
34
+ var IconButton_1 = require("../IconButton");
35
+ var TextLabel_1 = require("../TextLabel");
36
+ var titleTextColors = {
37
+ seller: 'usrTextBrandPrimary',
38
+ subscriber: 'sysTextSecondary'
39
+ };
40
+ var backgroundColorTheme = {
41
+ seller: 'ui_cpnt_list_base_area_seller',
42
+ subscriber: 'ui_cpnt_list_base_area'
43
+ };
44
+ function BasicChatListItem(_a) {
45
+ var titleText = _a.titleText, contentText = _a.contentText, _b = _a.leftImageMode, leftImageMode = _b === void 0 ? 'none' : _b, imageSrc = _a.imageSrc, _c = _a.hoverBtnMode, hoverBtnMode = _c === void 0 ? 'use' : _c, contextMenuOptionArray = _a.contextMenuOptionArray, onClickContextMenu = _a.onClickContextMenu, _d = _a.contextMenuState, contextMenuState = _d === void 0 ? 'normal' : _d, _e = _a.colorTheme, colorTheme = _e === void 0 ? 'subscriber' : _e;
46
+ var _f = (0, react_1.useState)(false), isContextMenuOpen = _f[0], setIsContextMenuOpen = _f[1];
47
+ var contextMenuRef = (0, react_1.useRef)(null);
48
+ /**
49
+ * @when contextMenu가 열려 있을 때
50
+ * @expected ChatList body의 스크롤을 숨기고, contextMenu의 외부를 클릭하면 contextMenu가 닫히도록 합니다.
51
+ * @clear document의 클릭 이벤트를 제거합니다.
52
+ */
53
+ (0, react_1.useEffect)(function () {
54
+ // NOTE pop up 개념이 생기기 전까지의 임시 조치 방법입니다.
55
+ var chatBody = document.querySelector('#chatMessageBox');
56
+ if (chatBody) {
57
+ if (isContextMenuOpen) {
58
+ chatBody.style.overflowY = 'hidden';
59
+ }
60
+ else {
61
+ chatBody.style.overflowY = 'auto';
62
+ }
63
+ }
64
+ function handleClickOutside(e) {
65
+ if (contextMenuRef.current && !contextMenuRef.current.contains(e.target)) {
66
+ if (isContextMenuOpen) {
67
+ e.stopPropagation();
68
+ setIsContextMenuOpen(false);
69
+ }
70
+ }
71
+ }
72
+ document.addEventListener('click', handleClickOutside);
73
+ return function () {
74
+ document.removeEventListener('click', handleClickOutside);
75
+ };
76
+ }, [isContextMenuOpen]);
77
+ var handleClickMoreButton = function () {
78
+ setIsContextMenuOpen(function (prev) { return !prev; });
79
+ };
80
+ var handleClickContextMenuItem = function (option) {
81
+ if (onClickContextMenu) {
82
+ onClickContextMenu(option);
83
+ }
84
+ setIsContextMenuOpen(false);
85
+ };
86
+ return (react_1.default.createElement(react_1.default.Fragment, null,
87
+ react_1.default.createElement(S_BasicChatListItem, { colorTheme: colorTheme, hoverBtnMode: hoverBtnMode },
88
+ leftImageMode === 'use' && (react_1.default.createElement(S_ImageViewWrapper, null,
89
+ react_1.default.createElement(hybrid_1.ImageView, { shapeType: "circular", ratio: "1_1", scaleType: "cover", src: imageSrc, width: "responsive" }))),
90
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: titleText, styleTheme: "caption1Bold", colorTheme: titleTextColors[colorTheme] }),
91
+ react_1.default.createElement(S_ContentTextWrapper, null,
92
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: contentText, styleTheme: "caption1Regular", colorTheme: "sysTextPrimary", wordBreak: "break_all" })),
93
+ react_1.default.createElement(S_SeeMoreButton, { isContextMenuOpen: isContextMenuOpen },
94
+ react_1.default.createElement(IconButton_1.IconButton, { fillType: "fill", baseSize: "xsmall", iconFillType: "fill", iconSize: 20, iconName: "ic_more", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: "ui_cpnt_button_icon_on_primary", onClick: handleClickMoreButton }),
95
+ isContextMenuOpen && (react_1.default.createElement(S_ContextMenuWrapper, { ref: contextMenuRef },
96
+ react_1.default.createElement(ContextMenu_1.ContextMenu, null, contextMenuOptionArray === null || contextMenuOptionArray === void 0 ? void 0 : contextMenuOptionArray.map(function (el) { return (react_1.default.createElement(ContextMenuItem_1.ContextMenuItem, { key: el.value, option: el, onClick: handleClickContextMenuItem, state: contextMenuState })); }))))))));
97
+ }
98
+ var S_SeeMoreButton = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: ", ";\n margin-left: ", ";\n position: relative;\n"], ["\n display: ", ";\n margin-left: ", ";\n position: relative;\n"])), function (_a) {
99
+ var isContextMenuOpen = _a.isContextMenuOpen;
100
+ return (isContextMenuOpen ? 'block' : 'none');
101
+ }, function (_a) {
102
+ var theme = _a.theme;
103
+ return theme.spacing.spacingA;
104
+ });
105
+ var S_BasicChatListItem = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n height: fit-content;\n min-height: 24px;\n max-width: 100%;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n\n ", ";\n\n :hover {\n ", " {\n display: ", ";\n }\n }\n"], ["\n display: flex;\n height: fit-content;\n min-height: 24px;\n max-width: 100%;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n\n ", ";\n\n :hover {\n ", " {\n display: ", ";\n }\n }\n"])), function (_a) {
106
+ var theme = _a.theme;
107
+ return theme.spacing.spacingA;
108
+ }, function (_a) {
109
+ var theme = _a.theme;
110
+ return theme.spacing.spacingE;
111
+ }, function (_a) {
112
+ var theme = _a.theme;
113
+ return theme.spacing.spacingD;
114
+ }, function (_a) {
115
+ var theme = _a.theme;
116
+ return theme.spacing.spacingA;
117
+ }, function (_a) {
118
+ var colorTheme = _a.colorTheme, theme = _a.theme;
119
+ return colorTheme && theme[backgroundColorTheme[colorTheme]];
120
+ }, S_SeeMoreButton, function (_a) {
121
+ var hoverBtnMode = _a.hoverBtnMode;
122
+ return hoverBtnMode === 'use' && 'block';
123
+ });
124
+ var S_ImageViewWrapper = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n height: 24px;\n margin-right: ", ";\n min-width: 24px;\n width: 24px;\n"], ["\n height: 24px;\n margin-right: ", ";\n min-width: 24px;\n width: 24px;\n"])), function (_a) {
125
+ var theme = _a.theme;
126
+ return theme.spacing.spacingB;
127
+ });
128
+ var S_ContentTextWrapper = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n flex: 1;\n margin-left: ", ";\n"], ["\n flex: 1;\n margin-left: ", ";\n"])), function (_a) {
129
+ var theme = _a.theme;
130
+ return theme.spacing.spacingC;
131
+ });
132
+ var S_ContextMenuWrapper = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n position: absolute;\n right: -4px;\n z-index: 10;\n"], ["\n position: absolute;\n right: -4px;\n z-index: 10;\n"])));
133
+ exports.default = BasicChatListItem;
134
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -0,0 +1 @@
1
+ export { default as BasicChatListItem } from './BasicChatListItem';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BasicChatListItem = void 0;
7
+ var BasicChatListItem_1 = require("./BasicChatListItem");
8
+ Object.defineProperty(exports, "BasicChatListItem", { enumerable: true, get: function () { return __importDefault(BasicChatListItem_1).default; } });
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import type { Props as ChatListProps } from './ChatList';
3
+ declare type Props = Pick<ChatListProps, 'scrollVisibleType' | 'children' | 'bodyBtnText'> & {
4
+ isSubmitted: boolean;
5
+ };
6
+ declare function Body({ scrollVisibleType, children, isSubmitted, bodyBtnText }: Props): JSX.Element;
7
+ export default Body;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ var react_1 = __importStar(require("react"));
30
+ var styled_components_1 = __importStar(require("styled-components"));
31
+ var MainButton_1 = require("../MainButton");
32
+ var useAutoScrollToBottom_1 = __importDefault(require("./useAutoScrollToBottom"));
33
+ var useTimeout_1 = __importDefault(require("./useTimeout"));
34
+ function Body(_a) {
35
+ var scrollVisibleType = _a.scrollVisibleType, children = _a.children, isSubmitted = _a.isSubmitted, bodyBtnText = _a.bodyBtnText;
36
+ var _b = (0, react_1.useState)(false), isButtonShow = _b[0], setIsButtonShow = _b[1];
37
+ var _c = (0, useAutoScrollToBottom_1.default)(), triggerScrollToBottom = _c.triggerScrollToBottom, EndOfList = _c.EndOfList;
38
+ var scrollRef = (0, react_1.useRef)(null);
39
+ var handleTriggerScroll = function () {
40
+ if (isButtonShow) {
41
+ if (isSubmitted) {
42
+ triggerScrollToBottom();
43
+ }
44
+ return;
45
+ }
46
+ triggerScrollToBottom();
47
+ };
48
+ /**
49
+ * @when 스크롤을 하고 있지 않은 상황에서 chatMessages가 업데이트 될 때마다
50
+ * @expected 채팅 리스트의 맨 밑으로 스크롤 내린다.
51
+ * @clear -
52
+ */
53
+ (0, useTimeout_1.default)({ callback: handleTriggerScroll, target: children }, 200);
54
+ var handleClickMBtn = function () {
55
+ triggerScrollToBottom();
56
+ };
57
+ var handleScroll = function () {
58
+ if (scrollRef.current) {
59
+ var _a = scrollRef.current, scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;
60
+ var BUTTON_SHOW_UP_HEIGHT = 100;
61
+ if (Math.ceil(scrollTop) + clientHeight + BUTTON_SHOW_UP_HEIGHT > scrollHeight) {
62
+ setIsButtonShow(false);
63
+ return;
64
+ }
65
+ setIsButtonShow(true);
66
+ }
67
+ };
68
+ return (react_1.default.createElement(S_Body, null,
69
+ react_1.default.createElement(S_ChatMessageBox, { onScroll: handleScroll, ref: scrollRef, scrollVisibleType: scrollVisibleType },
70
+ children,
71
+ react_1.default.createElement(EndOfList, null)),
72
+ isButtonShow && (react_1.default.createElement(S_BottomButtonWrapper, null,
73
+ react_1.default.createElement(MainButton_1.MainButton, { text: bodyBtnText, size: "small", onClick: handleClickMBtn })))));
74
+ }
75
+ var S_Body = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n flex: 1;\n overflow-x: hidden;\n overflow-y: hidden;\n position: relative;\n"], ["\n flex: 1;\n overflow-x: hidden;\n overflow-y: hidden;\n position: relative;\n"])));
76
+ var scrollVisibleStyle = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ::-webkit-scrollbar {\n display: block;\n }\n"], ["\n ::-webkit-scrollbar {\n display: block;\n }\n"])));
77
+ var scrollHiddenStyle = (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n -ms-overflow-style: none;\n scrollbar-width: none;\n\n ::-webkit-scrollbar {\n display: none;\n }\n"], ["\n -ms-overflow-style: none;\n scrollbar-width: none;\n\n ::-webkit-scrollbar {\n display: none;\n }\n"])));
78
+ var S_ChatMessageBox = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n height: 100%;\n overflow-y: auto;\n\n ", "\n"], ["\n height: 100%;\n overflow-y: auto;\n\n ", "\n"])), function (_a) {
79
+ var scrollVisibleType = _a.scrollVisibleType;
80
+ if (!scrollVisibleType || scrollVisibleType === 'moving') {
81
+ return;
82
+ }
83
+ return {
84
+ visible: scrollVisibleStyle,
85
+ hidden: scrollHiddenStyle
86
+ }[scrollVisibleType];
87
+ });
88
+ var S_BottomButtonWrapper = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n position: absolute;\n bottom: ", ";\n left: 50%;\n transform: translate(-50%, 0);\n"], ["\n position: absolute;\n bottom: ", ";\n left: 50%;\n transform: translate(-50%, 0);\n"])), function (_a) {
89
+ var theme = _a.theme;
90
+ return theme.spacing.spacingC;
91
+ });
92
+ exports.default = Body;
93
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { FillIconNameKeys, LineIconNameKeys, PDSTextType } from '../../../common';
3
+ export declare type Props = {
4
+ styleTheme?: 'solid' | 'translucent' | 'transparent';
5
+ headerMode?: 'none' | 'use';
6
+ titleText?: PDSTextType;
7
+ captionText?: PDSTextType;
8
+ headerDisplayType?: 'none' | 'ibtn1';
9
+ iBtn1IconName?: FillIconNameKeys | LineIconNameKeys;
10
+ iBtn1IconFillType?: 'line' | 'fill';
11
+ children?: React.ReactNode;
12
+ textFieldState?: 'normal' | 'read_only' | 'disabled';
13
+ textFieldHintText?: PDSTextType;
14
+ textFieldDefaultText?: PDSTextType;
15
+ textFieldMaxLength?: number;
16
+ scrollVisibleType?: 'moving' | 'hidden' | 'visible';
17
+ footerChildren?: React.ReactNode;
18
+ submitBtnState?: 'disabled' | 'normal';
19
+ bodyBtnText?: PDSTextType;
20
+ onSubmit: (value: string) => void;
21
+ };
22
+ declare function ChatList({ styleTheme, headerMode, titleText, captionText, headerDisplayType, iBtn1IconName, iBtn1IconFillType, children, textFieldState, textFieldHintText, textFieldDefaultText, textFieldMaxLength, scrollVisibleType, footerChildren, submitBtnState, bodyBtnText, onSubmit }: Props): JSX.Element;
23
+ export default ChatList;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ var react_1 = __importStar(require("react"));
41
+ var react_hook_form_1 = require("react-hook-form");
42
+ var styled_components_1 = __importDefault(require("styled-components"));
43
+ var hybrid_1 = require("../../../hybrid");
44
+ var Body_1 = __importDefault(require("./Body"));
45
+ var Footer_1 = __importDefault(require("./Footer"));
46
+ var Header_1 = __importDefault(require("./Header"));
47
+ var baseBackgroundColors = {
48
+ solid: 'ui_cpnt_list_base_area_solid',
49
+ translucent: 'ui_cpnt_list_base_area_translucent',
50
+ transparent: 'ui_cpnt_list_base_area_translucent'
51
+ };
52
+ function ChatList(_a) {
53
+ var _b = _a.styleTheme, styleTheme = _b === void 0 ? 'solid' : _b, _c = _a.headerMode, headerMode = _c === void 0 ? 'use' : _c, titleText = _a.titleText, captionText = _a.captionText, _d = _a.headerDisplayType, headerDisplayType = _d === void 0 ? 'none' : _d, _e = _a.iBtn1IconName, iBtn1IconName = _e === void 0 ? 'ic_xmark' : _e, _f = _a.iBtn1IconFillType, iBtn1IconFillType = _f === void 0 ? 'line' : _f, children = _a.children, _g = _a.textFieldState, textFieldState = _g === void 0 ? 'normal' : _g, textFieldHintText = _a.textFieldHintText, textFieldDefaultText = _a.textFieldDefaultText, textFieldMaxLength = _a.textFieldMaxLength, _h = _a.scrollVisibleType, scrollVisibleType = _h === void 0 ? 'moving' : _h, footerChildren = _a.footerChildren, submitBtnState = _a.submitBtnState, bodyBtnText = _a.bodyBtnText, onSubmit = _a.onSubmit;
54
+ var methods = (0, react_hook_form_1.useForm)({
55
+ mode: 'onChange',
56
+ defaultValues: {
57
+ chat: ''
58
+ }
59
+ });
60
+ var reset = methods.reset, handleSubmit = methods.handleSubmit, control = methods.control, _j = methods.formState, isSubmitted = _j.isSubmitted, isValid = _j.isValid, isDirty = _j.isDirty;
61
+ var inputValue = (0, react_hook_form_1.useWatch)({ name: 'chat', control: control });
62
+ var isSubmitButtonActive = (0, react_1.useMemo)(function () {
63
+ if (!submitBtnState) {
64
+ return false;
65
+ }
66
+ return isDirty && isValid && inputValue.length > 0 && submitBtnState === 'normal';
67
+ }, [isDirty, isValid, inputValue, submitBtnState]);
68
+ var handleSubmitChat = function (_a) {
69
+ var chat = _a.chat;
70
+ if (!chat || !isSubmitButtonActive) {
71
+ return;
72
+ }
73
+ onSubmit(chat);
74
+ reset({ chat: '' });
75
+ };
76
+ return (react_1.default.createElement(S_ChatList, { backgroundColor: baseBackgroundColors[styleTheme], id: "chatList" },
77
+ headerMode === 'use' && (react_1.default.createElement(react_1.default.Fragment, null,
78
+ react_1.default.createElement(Header_1.default, { styleTheme: styleTheme, titleText: titleText, captionText: captionText, headerDisplayType: headerDisplayType, iBtn1IconName: iBtn1IconName, iBtn1IconFillType: iBtn1IconFillType }),
79
+ react_1.default.createElement(hybrid_1.Divider, null))),
80
+ react_1.default.createElement(Body_1.default, { scrollVisibleType: scrollVisibleType, isSubmitted: isSubmitted, bodyBtnText: bodyBtnText }, children),
81
+ react_1.default.createElement(hybrid_1.Divider, null),
82
+ react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_d" }),
83
+ react_1.default.createElement(react_hook_form_1.FormProvider, __assign({}, methods),
84
+ react_1.default.createElement("form", { onSubmit: handleSubmit(handleSubmitChat) },
85
+ react_1.default.createElement(Footer_1.default, { textFieldDefaultText: textFieldDefaultText, textFieldHintText: textFieldHintText, textFieldState: textFieldState, textFieldMaxLength: textFieldMaxLength, footerChildren: footerChildren, isSubmitBtnActive: isSubmitButtonActive }))),
86
+ react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_d" })));
87
+ }
88
+ var S_ChatList = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n display: flex;\n flex-direction: column;\n height: 100%;\n"], ["\n background-color: ", ";\n display: flex;\n flex-direction: column;\n height: 100%;\n"])), function (_a) {
89
+ var backgroundColor = _a.backgroundColor, theme = _a.theme;
90
+ return theme[backgroundColor];
91
+ });
92
+ exports.default = ChatList;
93
+ var templateObject_1;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import type { Props as ChatListProps } from './ChatList';
3
+ declare type Props = Pick<ChatListProps, 'textFieldDefaultText' | 'textFieldHintText' | 'textFieldState' | 'textFieldMaxLength'> & {
4
+ isSubmitBtnActive: boolean;
5
+ };
6
+ declare function ChatTextField({ textFieldDefaultText, textFieldHintText, textFieldState, textFieldMaxLength, isSubmitBtnActive }: Props): JSX.Element;
7
+ export default ChatTextField;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ var react_1 = __importDefault(require("react"));
11
+ var styled_components_1 = __importDefault(require("styled-components"));
12
+ var IconButton_1 = require("../IconButton");
13
+ var TextField_1 = require("../TextField");
14
+ function ChatTextField(_a) {
15
+ var textFieldDefaultText = _a.textFieldDefaultText, textFieldHintText = _a.textFieldHintText, textFieldState = _a.textFieldState, textFieldMaxLength = _a.textFieldMaxLength, isSubmitBtnActive = _a.isSubmitBtnActive;
16
+ var chatValidation = {
17
+ validate: function (value) {
18
+ if (!value)
19
+ return true;
20
+ return value.trim().length ? true : false;
21
+ }
22
+ };
23
+ return (react_1.default.createElement(react_1.default.Fragment, null,
24
+ react_1.default.createElement(S_FooterContentWrapper, null,
25
+ react_1.default.createElement(S_TextFieldWrapper, null,
26
+ react_1.default.createElement(TextField_1.TextField, { name: "chat", responsiveMode: "use", textLineType: "single", inputType: "text", hintText: textFieldHintText, defaultText: textFieldDefaultText, validation: chatValidation, maxLength: textFieldMaxLength, enterSubmitMode: "use", validationPoint: "onChange", state: textFieldState })),
27
+ react_1.default.createElement(IconButton_1.IconButton, { iconName: "ic_paper_plane", baseSize: "large", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: isSubmitBtnActive ? 'ui_cpnt_icon_sys_brandprimary' : 'ui_cpnt_button_icon_disabled', iconSize: 24, type: "submit", state: isSubmitBtnActive ? 'normal' : 'disabled' }))));
28
+ }
29
+ var S_FooterContentWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n padding-left: ", ";\n padding-right: ", ";\n"], ["\n align-items: center;\n display: flex;\n padding-left: ", ";\n padding-right: ", ";\n"])), function (_a) {
30
+ var theme = _a.theme;
31
+ return theme.spacing.spacingE;
32
+ }, function (_a) {
33
+ var theme = _a.theme;
34
+ return theme.spacing.spacingC;
35
+ });
36
+ var S_TextFieldWrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n flex: 1;\n margin-right: ", ";\n"], ["\n flex: 1;\n margin-right: ", ";\n"])), function (_a) {
37
+ var theme = _a.theme;
38
+ return theme.spacing.spacingB;
39
+ });
40
+ exports.default = ChatTextField;
41
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import type { Props as ChatListProps } from './ChatList';
3
+ declare type Props = Pick<ChatListProps, 'footerChildren' | 'textFieldDefaultText' | 'textFieldHintText' | 'textFieldState' | 'textFieldMaxLength'> & {
4
+ isSubmitBtnActive: boolean;
5
+ };
6
+ declare function Footer({ footerChildren, textFieldDefaultText, textFieldHintText, textFieldState, textFieldMaxLength, isSubmitBtnActive }: Props): JSX.Element;
7
+ export default Footer;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ var react_1 = __importDefault(require("react"));
11
+ var styled_components_1 = __importDefault(require("styled-components"));
12
+ var ChatTextField_1 = __importDefault(require("./ChatTextField"));
13
+ function Footer(_a) {
14
+ var footerChildren = _a.footerChildren, textFieldDefaultText = _a.textFieldDefaultText, textFieldHintText = _a.textFieldHintText, textFieldState = _a.textFieldState, textFieldMaxLength = _a.textFieldMaxLength, isSubmitBtnActive = _a.isSubmitBtnActive;
15
+ return (react_1.default.createElement(react_1.default.Fragment, null,
16
+ react_1.default.createElement(ChatTextField_1.default, { textFieldDefaultText: textFieldDefaultText, textFieldHintText: textFieldHintText, textFieldState: textFieldState, textFieldMaxLength: textFieldMaxLength, isSubmitBtnActive: isSubmitBtnActive }),
17
+ react_1.default.createElement(S_FooterChildrenWrapper, null, footerChildren)));
18
+ }
19
+ var S_FooterChildrenWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n padding-left: ", ";\n padding-right: ", ";\n"], ["\n padding-left: ", ";\n padding-right: ", ";\n"])), function (_a) {
20
+ var theme = _a.theme;
21
+ return theme.spacing.spacingE;
22
+ }, function (_a) {
23
+ var theme = _a.theme;
24
+ return theme.spacing.spacingC;
25
+ });
26
+ exports.default = Footer;
27
+ var templateObject_1;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import type { Props as ChatListProps } from './ChatList';
3
+ declare type Props = Required<Pick<ChatListProps, 'styleTheme'>> & Pick<ChatListProps, 'titleText' | 'captionText' | 'headerDisplayType' | 'iBtn1IconName' | 'iBtn1IconFillType'>;
4
+ declare function Header({ styleTheme, titleText, captionText, headerDisplayType, iBtn1IconName, iBtn1IconFillType }: Props): JSX.Element;
5
+ export default Header;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ var react_1 = __importDefault(require("react"));
11
+ var styled_components_1 = __importDefault(require("styled-components"));
12
+ var hybrid_1 = require("../../../hybrid");
13
+ var IconButton_1 = require("../IconButton");
14
+ var TextLabel_1 = require("../TextLabel");
15
+ var titleTextColors = {
16
+ solid: 'sysTextPrimary',
17
+ translucent: 'sysTextWhite',
18
+ transparent: 'sysTextWhite'
19
+ };
20
+ var iconColors = {
21
+ solid: 'ui_cpnt_button_icon_enabled',
22
+ translucent: 'ui_cpnt_button_icon_white',
23
+ transparent: 'ui_cpnt_button_icon_white'
24
+ };
25
+ function Header(_a) {
26
+ var styleTheme = _a.styleTheme, titleText = _a.titleText, captionText = _a.captionText, headerDisplayType = _a.headerDisplayType, iBtn1IconName = _a.iBtn1IconName, iBtn1IconFillType = _a.iBtn1IconFillType;
27
+ return (react_1.default.createElement(S_HeaderContentWrapper, null,
28
+ react_1.default.createElement(S_HeaderLeftBox, null,
29
+ titleText && (react_1.default.createElement(TextLabel_1.TextLabel, { text: titleText, styleTheme: "body1Bold", colorTheme: titleTextColors[styleTheme] })),
30
+ captionText && (react_1.default.createElement(react_1.default.Fragment, null,
31
+ react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_a" }),
32
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: captionText, styleTheme: "caption1Regular", colorTheme: "sysTextSecondary", colorOverride: styleTheme === 'translucent' ? 'ui_cpnt_list_text_caption_02' : undefined })))),
33
+ headerDisplayType === 'ibtn1' && iBtn1IconName && (react_1.default.createElement(IconButton_1.IconButton, { iconName: iBtn1IconName, baseSize: "large", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconColorKey: iconColors[styleTheme], iconSize: 24, iconFillType: iBtn1IconFillType }))));
34
+ }
35
+ var S_HeaderContentWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"], ["\n align-items: center;\n display: flex;\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n"])), function (_a) {
36
+ var theme = _a.theme;
37
+ return theme.spacing.spacingD;
38
+ }, function (_a) {
39
+ var theme = _a.theme;
40
+ return theme.spacing.spacingE;
41
+ }, function (_a) {
42
+ var theme = _a.theme;
43
+ return theme.spacing.spacingC;
44
+ }, function (_a) {
45
+ var theme = _a.theme;
46
+ return theme.spacing.spacingD;
47
+ });
48
+ var S_HeaderLeftBox = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n flex: 1;\n"], ["\n flex: 1;\n"])));
49
+ exports.default = Header;
50
+ var templateObject_1, templateObject_2;
@@ -0,0 +1 @@
1
+ export { default as ChatList } from './ChatList';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ChatList = void 0;
7
+ var ChatList_1 = require("./ChatList");
8
+ Object.defineProperty(exports, "ChatList", { enumerable: true, get: function () { return __importDefault(ChatList_1).default; } });
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ behavior?: 'auto' | 'smooth';
4
+ heightOfEndOfList?: number;
5
+ };
6
+ declare function useAutoScrollToBottom({ behavior, heightOfEndOfList }?: Props): {
7
+ triggerScrollToBottom: () => void;
8
+ EndOfList: () => JSX.Element;
9
+ };
10
+ export default useAutoScrollToBottom;