@patternfly/chatbot 2.2.0-prerelease.6 → 2.2.0-prerelease.8
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.
- package/dist/cjs/CodeModal/CodeModal.js +2 -12
- package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +1 -1
- package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -2
- package/dist/cjs/Message/Message.js +1 -1
- package/dist/cjs/Message/Message.test.js +21 -0
- package/dist/css/main.css +8 -0
- package/dist/css/main.css.map +1 -1
- package/dist/esm/CodeModal/CodeModal.js +2 -12
- package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +1 -1
- package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -2
- package/dist/esm/Message/Message.js +1 -1
- package/dist/esm/Message/Message.test.js +21 -0
- package/package.json +7 -7
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +19 -18
- package/src/CodeModal/CodeModal.scss +8 -0
- package/src/CodeModal/CodeModal.tsx +2 -13
- package/src/FileDropZone/__snapshots__/FileDropZone.test.tsx.snap +1 -1
- package/src/Message/ListMessage/OrderedListMessage.tsx +2 -2
- package/src/Message/Message.test.tsx +22 -0
- package/src/Message/Message.tsx +1 -1
@@ -75,24 +75,14 @@ const CodeModal = (_a) => {
|
|
75
75
|
setNewCode(value);
|
76
76
|
}
|
77
77
|
};
|
78
|
-
/* eslint-disable indent */
|
79
|
-
const getHeight = (displayMode) => {
|
80
|
-
switch (displayMode) {
|
81
|
-
case Chatbot_1.ChatbotDisplayMode.docked:
|
82
|
-
return '100vh';
|
83
|
-
default:
|
84
|
-
return '45vh';
|
85
|
-
}
|
86
|
-
};
|
87
|
-
/* eslint-enable indent */
|
88
78
|
const modal = (react_1.default.createElement(ChatbotModal_1.default, { isOpen: isModalOpen, onClose: handleModalToggle, ouiaId: "CodeModal", "aria-labelledby": "code-modal-title", "aria-describedby": "code-modal", className: `pf-chatbot__code-modal pf-chatbot__code-modal--${displayMode}`, displayMode: displayMode },
|
89
79
|
react_1.default.createElement(react_core_1.ModalHeader, { title: title, labelId: "code-modal-title" }),
|
90
80
|
react_1.default.createElement(react_core_1.ModalBody, { id: "code-modal-body" },
|
91
81
|
react_1.default.createElement(react_core_1.Stack, { className: "pf-chatbot__code-modal-body" },
|
92
82
|
react_1.default.createElement(react_core_1.StackItem, { className: "pf-chatbot__code-modal-file-details" },
|
93
83
|
react_1.default.createElement(FileDetails_1.default, { fileName: fileName })),
|
94
|
-
react_1.default.createElement(react_core_1.StackItem,
|
95
|
-
react_1.default.createElement(react_code_editor_1.CodeEditor, Object.assign({ isDarkTheme: true, isLineNumbersVisible: isLineNumbersVisible, isLanguageLabelVisible: true, isCopyEnabled: isCopyEnabled, isReadOnly: isReadOnly, code: newCode, language: FileDetails_1.extensionToLanguage[path_browserify_1.default.extname(fileName).slice(1)], onEditorDidMount: onEditorDidMount, onCodeChange: onCodeChange, className: codeEditorClassName,
|
84
|
+
react_1.default.createElement(react_core_1.StackItem, { className: "pf-chatbot__code-modal-body" },
|
85
|
+
react_1.default.createElement(react_code_editor_1.CodeEditor, Object.assign({ isDarkTheme: true, isLineNumbersVisible: isLineNumbersVisible, isLanguageLabelVisible: true, isCopyEnabled: isCopyEnabled, isReadOnly: isReadOnly, code: newCode, language: FileDetails_1.extensionToLanguage[path_browserify_1.default.extname(fileName).slice(1)], onEditorDidMount: onEditorDidMount, onCodeChange: onCodeChange, className: codeEditorClassName, isFullHeight: true, options: {
|
96
86
|
glyphMargin: false,
|
97
87
|
folding: false
|
98
88
|
} }, props))))),
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { ExtraProps } from 'react-markdown';
|
3
|
-
declare const OrderedListMessage: ({ children }: JSX.IntrinsicElements["ol"] & ExtraProps) => React.JSX.Element;
|
3
|
+
declare const OrderedListMessage: ({ children, start }: JSX.IntrinsicElements["ol"] & ExtraProps) => React.JSX.Element;
|
4
4
|
export default OrderedListMessage;
|
@@ -8,6 +8,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
9
9
|
const react_1 = __importDefault(require("react"));
|
10
10
|
const react_core_1 = require("@patternfly/react-core");
|
11
|
-
const OrderedListMessage = ({ children }) => (react_1.default.createElement("div", { className: "pf-chatbot__message-ordered-list" },
|
12
|
-
react_1.default.createElement(react_core_1.List, { component: react_core_1.ListComponent.ol, type: react_core_1.OrderType.number }, children)));
|
11
|
+
const OrderedListMessage = ({ children, start }) => (react_1.default.createElement("div", { className: "pf-chatbot__message-ordered-list" },
|
12
|
+
react_1.default.createElement(react_core_1.List, { component: react_core_1.ListComponent.ol, type: react_core_1.OrderType.number, start: start }, children)));
|
13
13
|
exports.default = OrderedListMessage;
|
@@ -56,7 +56,7 @@ const Message = (_a) => {
|
|
56
56
|
p: TextMessage_1.default,
|
57
57
|
code: ({ children }) => react_1.default.createElement(CodeBlockMessage_1.default, Object.assign({}, codeBlockProps), children),
|
58
58
|
ul: UnorderedListMessage_1.default,
|
59
|
-
ol: OrderedListMessage_1.default,
|
59
|
+
ol: (props) => react_1.default.createElement(OrderedListMessage_1.default, Object.assign({}, props)),
|
60
60
|
li: ListItemMessage_1.default
|
61
61
|
}, remarkPlugins: [remark_gfm_1.default] }, content)),
|
62
62
|
!isLoading && sources && react_1.default.createElement(SourcesCard_1.default, Object.assign({}, sources)),
|
@@ -60,6 +60,21 @@ spec:
|
|
60
60
|
url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs
|
61
61
|
`;
|
62
62
|
const INLINE_CODE = `Here is an inline code - \`() => void\``;
|
63
|
+
const ORDERED_LIST_WITH_CODE = `
|
64
|
+
1. Item 1
|
65
|
+
2. Item 2
|
66
|
+
|
67
|
+
\`\`\`yaml
|
68
|
+
- name: Hello World Playbook
|
69
|
+
hosts: localhost
|
70
|
+
tasks:
|
71
|
+
- name: Print Hello World
|
72
|
+
ansible.builtin.debug:
|
73
|
+
msg: "Hello, World!"
|
74
|
+
\`\`\`
|
75
|
+
|
76
|
+
3. Item 3
|
77
|
+
`;
|
63
78
|
const checkListItemsRendered = () => {
|
64
79
|
const items = ['Item 1', 'Item 2', 'Item 3'];
|
65
80
|
expect(react_2.screen.getAllByRole('listitem')).toHaveLength(3);
|
@@ -280,6 +295,12 @@ describe('Message', () => {
|
|
280
295
|
expect(react_2.screen.getByText('Here is an ordered list:')).toBeTruthy();
|
281
296
|
checkListItemsRendered();
|
282
297
|
});
|
298
|
+
it('should render ordered lists correctly if there is interstitial content', () => {
|
299
|
+
(0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: ORDERED_LIST_WITH_CODE }));
|
300
|
+
checkListItemsRendered();
|
301
|
+
const list = react_2.screen.getAllByRole('list')[1];
|
302
|
+
expect(list).toHaveAttribute('start', '3');
|
303
|
+
});
|
283
304
|
it('should render inline code', () => {
|
284
305
|
(0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: INLINE_CODE }));
|
285
306
|
expect(react_2.screen.getByText(/() => void/i)).toBeTruthy();
|
package/dist/css/main.css
CHANGED
@@ -690,6 +690,14 @@
|
|
690
690
|
--pf-v6-c-button--hover__icon--Color: #c7c7c7;
|
691
691
|
}
|
692
692
|
|
693
|
+
.pf-chatbot__code-modal-body {
|
694
|
+
flex: 1;
|
695
|
+
}
|
696
|
+
|
697
|
+
.pf-chatbot__code-modal--fullscreen {
|
698
|
+
height: inherit;
|
699
|
+
}
|
700
|
+
|
693
701
|
.pf-chatbot__code-language {
|
694
702
|
color: var(--pf-t--global--text--color--subtle);
|
695
703
|
display: flex;
|
package/dist/css/main.css.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/AttachMenu/AttachMenu.scss","../../src/Chatbot/Chatbot.scss","../../src/ChatbotAlert/ChatbotAlert.scss","../../src/ChatbotContent/ChatbotContent.scss","../../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss","../../src/ChatbotFooter/ChatbotFootnote.scss","../../src/ChatbotFooter/ChatbotFooter.scss","../../src/ChatbotHeader/ChatbotHeader.scss","../../src/ChatbotModal/ChatbotModal.scss","../../src/ChatbotPopover/ChatbotPopover.scss","../../src/ChatbotToggle/ChatbotToggle.scss","../../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss","../../src/CodeModal/CodeModal.scss","../../src/FileDetails/FileDetails.scss","../../src/FileDetailsLabel/FileDetailsLabel.scss","../../src/FileDropZone/FileDropZone.scss","../../src/Message/Message.scss","../../src/Message/MessageLoading.scss","../../src/Message/CodeBlockMessage/CodeBlockMessage.scss","../../src/Message/TextMessage/TextMessage.scss","../../src/Message/ListMessage/ListMessage.scss","../../src/MessageBar/AttachButton.scss","../../src/MessageBar/MicrophoneButton.scss","../../src/MessageBar/SendButton.scss","../../src/MessageBar/StopButton.scss","../../src/MessageBar/MessageBar.scss","../../src/MessageBox/JumpButton.scss","../../src/MessageBox/MessageBox.scss","../../src/ResponseActions/ResponseActions.scss","../../src/Settings/Settings.scss","../../src/SourcesCard/SourcesCard.scss","../../src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss","../../src/TermsOfUse/TermsOfUse.scss","../../src/main.scss"],"names":[],"mappings":"AAAA;EACE;EACA;;;AAGF;AACE;AAsBA;AASA;;AA9BA;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAGF;AACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;AAIF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;ACxDJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAKF;EAvBF;IAwBI;IACA;;;AAIF;EA7BF;IA8BI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EAXF;IAYI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAIF;EAdF;IAeI;;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;EAGE;;;AC1GF;EACE;EACA;EACA;;;ACAF;EACE;EACA;EACA;EACA;EACA;;AAGA;EARF;IASI;;;;AAOJ;EAGI;AAAA;IACE;IACA;;;ACpBJ;EACE;EACA;;AAIF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAMJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AAQF;EACE;;;AAQF;EACE;;AACA;EACE;;;AASJ;EACE;;AACA;EACE;EACA;;AAEF;EACE;;;AASF;AAAA;AAAA;EACE;;;AChLN;EACE;;AAEA;EACE;EACA;;;ACHJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAMF;EAGI;AAAA;IACE;;EACA;AAAA;IACE;;EAGJ;AAAA;IACE;IACA;IACA;;;AAUF;EACE;;AAGJ;EACE;;;ACjDJ;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;;AAQN;EAGI;AAAA;IACE;;EAEF;AAAA;IACE;;;AASJ;EACE;;AAEF;EACE;;;AAOJ;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAOJ;EACE;;;AAOJ;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;;;AC1IF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;AAAA;EAEE;;AAEF;EACE;EACA;;AAEF;EACE;;;AAOJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAGJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAOJ;EACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAQE;EACE;;;AAQN;EACE;;;ACvFA;EAA0B;;AAMxB;EAAM;;AACN;EAAuB;;AACvB;EACE;;AAIF;EACE;EACA;;AAEF;EACE;;;ACnBN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;;AAIF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;;AC3BF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AAOJ;EAIM;AAAA;IACE;IACA;;;AC1CN;EACE;EACA;EACA;EACA;;AAEF;EACE;AACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;;;AASA;EACE;EACA;;;
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/AttachMenu/AttachMenu.scss","../../src/Chatbot/Chatbot.scss","../../src/ChatbotAlert/ChatbotAlert.scss","../../src/ChatbotContent/ChatbotContent.scss","../../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss","../../src/ChatbotFooter/ChatbotFootnote.scss","../../src/ChatbotFooter/ChatbotFooter.scss","../../src/ChatbotHeader/ChatbotHeader.scss","../../src/ChatbotModal/ChatbotModal.scss","../../src/ChatbotPopover/ChatbotPopover.scss","../../src/ChatbotToggle/ChatbotToggle.scss","../../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss","../../src/CodeModal/CodeModal.scss","../../src/FileDetails/FileDetails.scss","../../src/FileDetailsLabel/FileDetailsLabel.scss","../../src/FileDropZone/FileDropZone.scss","../../src/Message/Message.scss","../../src/Message/MessageLoading.scss","../../src/Message/CodeBlockMessage/CodeBlockMessage.scss","../../src/Message/TextMessage/TextMessage.scss","../../src/Message/ListMessage/ListMessage.scss","../../src/MessageBar/AttachButton.scss","../../src/MessageBar/MicrophoneButton.scss","../../src/MessageBar/SendButton.scss","../../src/MessageBar/StopButton.scss","../../src/MessageBar/MessageBar.scss","../../src/MessageBox/JumpButton.scss","../../src/MessageBox/MessageBox.scss","../../src/ResponseActions/ResponseActions.scss","../../src/Settings/Settings.scss","../../src/SourcesCard/SourcesCard.scss","../../src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss","../../src/TermsOfUse/TermsOfUse.scss","../../src/main.scss"],"names":[],"mappings":"AAAA;EACE;EACA;;;AAGF;AACE;AAsBA;AASA;;AA9BA;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAGF;AACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;AAIF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;ACxDJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAKF;EAvBF;IAwBI;IACA;;;AAIF;EA7BF;IA8BI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EAXF;IAYI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAIF;EAdF;IAeI;;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;EAGE;;;AC1GF;EACE;EACA;EACA;;;ACAF;EACE;EACA;EACA;EACA;EACA;;AAGA;EARF;IASI;;;;AAOJ;EAGI;AAAA;IACE;IACA;;;ACpBJ;EACE;EACA;;AAIF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAMJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AAQF;EACE;;;AAQF;EACE;;AACA;EACE;;;AASJ;EACE;;AACA;EACE;EACA;;AAEF;EACE;;;AASF;AAAA;AAAA;EACE;;;AChLN;EACE;;AAEA;EACE;EACA;;;ACHJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAMF;EAGI;AAAA;IACE;;EACA;AAAA;IACE;;EAGJ;AAAA;IACE;IACA;IACA;;;AAUF;EACE;;AAGJ;EACE;;;ACjDJ;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;;AAQN;EAGI;AAAA;IACE;;EAEF;AAAA;IACE;;;AASJ;EACE;;AAEF;EACE;;;AAOJ;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAOJ;EACE;;;AAOJ;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;;;AC1IF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;AAAA;EAEE;;AAEF;EACE;EACA;;AAEF;EACE;;;AAOJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAGJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAOJ;EACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAQE;EACE;;;AAQN;EACE;;;ACvFA;EAA0B;;AAMxB;EAAM;;AACN;EAAuB;;AACvB;EACE;;AAIF;EACE;EACA;;AAEF;EACE;;;ACnBN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;;AAIF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;;AC3BF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AAOJ;EAIM;AAAA;IACE;IACA;;;AC1CN;EACE;EACA;EACA;EACA;;AAEF;EACE;AACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;;;AASA;EACE;EACA;;;AAKN;EACE;;;AAGF;EACE;;;AClFF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;ACvBF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;EAEE;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;;AAGF;EACE;;;AAIJ;AAAA;EAEE;EACA;;AAEA;AAAA;EACE;;;AAKF;EACE;;;AAMF;AAAA;EACE;;;AC/DJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;;AAGA;EANF;IAOI;;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AACA;EACE;EACA;EACA;EACA;;;AAME;EADF;IAEI;IACA;IACA;;EAEA;IACE;;;;AChDR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;;AAEF;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIA;EACE;;AAEA;EAHF;IAII;;;AAGF;EAPF;IAQI;;;;AAQR;EACE;EACA;EACA;;;ACnHF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;;AC9CN;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1EE;EACE;;;AAMN;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AAKF;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;;;AD5CN;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1EE;EACE;;;AAMN;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AAKF;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;;;AC3CN;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAKF;AAAA;EAEE;EACA;EACA;;;AHnBJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;;AI9CN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKA;EACE;;;ACbN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAMA;EACE;;AAKJ;EACE;EACA;;AAGA;EACE;;AAKA;EACE;;;AAMR;EACE;IACE;;EAEF;IACE;;;AC1CJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;EACA;;AAEA;EACE;;;AAMJ;EACE;;AACA;EACE;;AAIJ;EACE;EACA;;AAGF;AAAA;EAEE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AC/CJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;;;ACTJ;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACxEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AC9CJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAIA;EAVF;IAWI;;;AAGF;EAdF;IAeI;;;;AAIJ;EACE;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EAGI;AAAA;IACE;IACA;;;ADtCN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AEhDJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1BF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AChCF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACE;;AAGJ;EACE;EACA;;AAKA;AAAA;EACE;;AAGJ;EACE;;;ACrER;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;;;AAGA;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AC9BA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAIF;EACE;IACE;IACA;;;;AAKN;AAAA;EAGE;;AAGE;AAAA;EACE;;AAIJ;AAAA;EACE;;;AClCJ;EAKE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASA;EACA;EAEA;EAEA;EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAMA;EAKA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;;;AAMF;EACE;EACA;EAEA;EAEA;EACA;;;AAGF;EACE;EACA","file":"main.css"}
|
@@ -46,24 +46,14 @@ export const CodeModal = (_a) => {
|
|
46
46
|
setNewCode(value);
|
47
47
|
}
|
48
48
|
};
|
49
|
-
/* eslint-disable indent */
|
50
|
-
const getHeight = (displayMode) => {
|
51
|
-
switch (displayMode) {
|
52
|
-
case ChatbotDisplayMode.docked:
|
53
|
-
return '100vh';
|
54
|
-
default:
|
55
|
-
return '45vh';
|
56
|
-
}
|
57
|
-
};
|
58
|
-
/* eslint-enable indent */
|
59
49
|
const modal = (React.createElement(ChatbotModal, { isOpen: isModalOpen, onClose: handleModalToggle, ouiaId: "CodeModal", "aria-labelledby": "code-modal-title", "aria-describedby": "code-modal", className: `pf-chatbot__code-modal pf-chatbot__code-modal--${displayMode}`, displayMode: displayMode },
|
60
50
|
React.createElement(ModalHeader, { title: title, labelId: "code-modal-title" }),
|
61
51
|
React.createElement(ModalBody, { id: "code-modal-body" },
|
62
52
|
React.createElement(Stack, { className: "pf-chatbot__code-modal-body" },
|
63
53
|
React.createElement(StackItem, { className: "pf-chatbot__code-modal-file-details" },
|
64
54
|
React.createElement(FileDetails, { fileName: fileName })),
|
65
|
-
React.createElement(StackItem,
|
66
|
-
React.createElement(CodeEditor, Object.assign({ isDarkTheme: true, isLineNumbersVisible: isLineNumbersVisible, isLanguageLabelVisible: true, isCopyEnabled: isCopyEnabled, isReadOnly: isReadOnly, code: newCode, language: extensionToLanguage[path.extname(fileName).slice(1)], onEditorDidMount: onEditorDidMount, onCodeChange: onCodeChange, className: codeEditorClassName,
|
55
|
+
React.createElement(StackItem, { className: "pf-chatbot__code-modal-body" },
|
56
|
+
React.createElement(CodeEditor, Object.assign({ isDarkTheme: true, isLineNumbersVisible: isLineNumbersVisible, isLanguageLabelVisible: true, isCopyEnabled: isCopyEnabled, isReadOnly: isReadOnly, code: newCode, language: extensionToLanguage[path.extname(fileName).slice(1)], onEditorDidMount: onEditorDidMount, onCodeChange: onCodeChange, className: codeEditorClassName, isFullHeight: true, options: {
|
67
57
|
glyphMargin: false,
|
68
58
|
folding: false
|
69
59
|
} }, props))))),
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { ExtraProps } from 'react-markdown';
|
3
|
-
declare const OrderedListMessage: ({ children }: JSX.IntrinsicElements["ol"] & ExtraProps) => React.JSX.Element;
|
3
|
+
declare const OrderedListMessage: ({ children, start }: JSX.IntrinsicElements["ol"] & ExtraProps) => React.JSX.Element;
|
4
4
|
export default OrderedListMessage;
|
@@ -3,6 +3,6 @@
|
|
3
3
|
// ============================================================================
|
4
4
|
import React from 'react';
|
5
5
|
import { List, ListComponent, OrderType } from '@patternfly/react-core';
|
6
|
-
const OrderedListMessage = ({ children }) => (React.createElement("div", { className: "pf-chatbot__message-ordered-list" },
|
7
|
-
React.createElement(List, { component: ListComponent.ol, type: OrderType.number }, children)));
|
6
|
+
const OrderedListMessage = ({ children, start }) => (React.createElement("div", { className: "pf-chatbot__message-ordered-list" },
|
7
|
+
React.createElement(List, { component: ListComponent.ol, type: OrderType.number, start: start }, children)));
|
8
8
|
export default OrderedListMessage;
|
@@ -50,7 +50,7 @@ export const Message = (_a) => {
|
|
50
50
|
p: TextMessage,
|
51
51
|
code: ({ children }) => React.createElement(CodeBlockMessage, Object.assign({}, codeBlockProps), children),
|
52
52
|
ul: UnorderedListMessage,
|
53
|
-
ol: OrderedListMessage,
|
53
|
+
ol: (props) => React.createElement(OrderedListMessage, Object.assign({}, props)),
|
54
54
|
li: ListItemMessage
|
55
55
|
}, remarkPlugins: [remarkGfm] }, content)),
|
56
56
|
!isLoading && sources && React.createElement(SourcesCard, Object.assign({}, sources)),
|
@@ -55,6 +55,21 @@ spec:
|
|
55
55
|
url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs
|
56
56
|
`;
|
57
57
|
const INLINE_CODE = `Here is an inline code - \`() => void\``;
|
58
|
+
const ORDERED_LIST_WITH_CODE = `
|
59
|
+
1. Item 1
|
60
|
+
2. Item 2
|
61
|
+
|
62
|
+
\`\`\`yaml
|
63
|
+
- name: Hello World Playbook
|
64
|
+
hosts: localhost
|
65
|
+
tasks:
|
66
|
+
- name: Print Hello World
|
67
|
+
ansible.builtin.debug:
|
68
|
+
msg: "Hello, World!"
|
69
|
+
\`\`\`
|
70
|
+
|
71
|
+
3. Item 3
|
72
|
+
`;
|
58
73
|
const checkListItemsRendered = () => {
|
59
74
|
const items = ['Item 1', 'Item 2', 'Item 3'];
|
60
75
|
expect(screen.getAllByRole('listitem')).toHaveLength(3);
|
@@ -275,6 +290,12 @@ describe('Message', () => {
|
|
275
290
|
expect(screen.getByText('Here is an ordered list:')).toBeTruthy();
|
276
291
|
checkListItemsRendered();
|
277
292
|
});
|
293
|
+
it('should render ordered lists correctly if there is interstitial content', () => {
|
294
|
+
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: ORDERED_LIST_WITH_CODE }));
|
295
|
+
checkListItemsRendered();
|
296
|
+
const list = screen.getAllByRole('list')[1];
|
297
|
+
expect(list).toHaveAttribute('start', '3');
|
298
|
+
});
|
278
299
|
it('should render inline code', () => {
|
279
300
|
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: INLINE_CODE }));
|
280
301
|
expect(screen.getByText(/() => void/i)).toBeTruthy();
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@patternfly/chatbot",
|
3
|
-
"version": "2.2.0-prerelease.
|
3
|
+
"version": "2.2.0-prerelease.8",
|
4
4
|
"description": "This library provides React components based on PatternFly 6 that can be used to build chatbots.",
|
5
5
|
"main": "dist/cjs/index.js",
|
6
6
|
"module": "dist/esm/index.js",
|
@@ -31,9 +31,9 @@
|
|
31
31
|
"tag": "prerelease"
|
32
32
|
},
|
33
33
|
"dependencies": {
|
34
|
-
"@patternfly/react-core": "^6.
|
35
|
-
"@patternfly/react-code-editor": "^6.
|
36
|
-
"@patternfly/react-icons": "^6.
|
34
|
+
"@patternfly/react-core": "^6.1.0",
|
35
|
+
"@patternfly/react-code-editor": "^6.1.0",
|
36
|
+
"@patternfly/react-icons": "^6.1.0",
|
37
37
|
"clsx": "^2.1.0",
|
38
38
|
"framer-motion": "^11.3.28",
|
39
39
|
"react-jss": "^10.10.0",
|
@@ -48,10 +48,10 @@
|
|
48
48
|
"react-dom": "^17 || ^18"
|
49
49
|
},
|
50
50
|
"devDependencies": {
|
51
|
-
"@patternfly/documentation-framework": "^6.0
|
52
|
-
"@patternfly/patternfly": "^6.
|
51
|
+
"@patternfly/documentation-framework": "^6.5.0",
|
52
|
+
"@patternfly/patternfly": "^6.1.0",
|
53
53
|
"@patternfly/patternfly-a11y": "^5.0.0",
|
54
|
-
"@patternfly/react-table": "^6.
|
54
|
+
"@patternfly/react-table": "^6.1.0",
|
55
55
|
"@types/dom-speech-recognition": "^0.0.4",
|
56
56
|
"@types/react": "^18.2.61",
|
57
57
|
"@types/react-dom": "^18.2.19",
|
@@ -36,18 +36,26 @@ interface ModalData {
|
|
36
36
|
}
|
37
37
|
|
38
38
|
export const BasicDemo: React.FunctionComponent = () => {
|
39
|
-
const onAttachmentClose = (
|
40
|
-
const index = messages.findIndex((message) => message.attachmentId === attachmentId);
|
39
|
+
const onAttachmentClose = (event, name, id) => {
|
41
40
|
const updatedMessages: MessageProps[] = [];
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
41
|
+
messages.map((message) => {
|
42
|
+
if (message.attachments) {
|
43
|
+
const filteredAttachments = message.attachments.filter((attachment) => attachment.id !== id);
|
44
|
+
message.attachments = filteredAttachments;
|
45
|
+
updatedMessages.push(message);
|
46
|
+
} else {
|
47
|
+
updatedMessages.push(message);
|
48
|
+
}
|
49
|
+
});
|
50
|
+
setMessages(updatedMessages);
|
50
51
|
};
|
52
|
+
|
53
|
+
const onAttachmentClick = () => {
|
54
|
+
setCurrentModalData({ fileName: 'auth-operator.yml', code: 'test' });
|
55
|
+
setIsEditModalOpen(false);
|
56
|
+
setIsPreviewModalOpen(true);
|
57
|
+
};
|
58
|
+
|
51
59
|
const initialMessages: MessageProps[] = [
|
52
60
|
{
|
53
61
|
role: 'user',
|
@@ -55,14 +63,7 @@ export const BasicDemo: React.FunctionComponent = () => {
|
|
55
63
|
name: 'User',
|
56
64
|
avatar: userAvatar,
|
57
65
|
avatarProps: { isBordered: true },
|
58
|
-
|
59
|
-
attachmentId: '1',
|
60
|
-
onAttachmentClose,
|
61
|
-
onAttachmentClick: () => {
|
62
|
-
setCurrentModalData({ fileName: 'auth-operator.yml', code: 'test' });
|
63
|
-
setIsEditModalOpen(false);
|
64
|
-
setIsPreviewModalOpen(true);
|
65
|
-
}
|
66
|
+
attachments: [{ name: 'auth-operator.yml', id: '1', onClick: onAttachmentClick, onClose: onAttachmentClose }]
|
66
67
|
},
|
67
68
|
{
|
68
69
|
role: 'bot',
|
@@ -87,17 +87,6 @@ export const CodeModal: React.FunctionComponent<CodeModalProps> = ({
|
|
87
87
|
}
|
88
88
|
};
|
89
89
|
|
90
|
-
/* eslint-disable indent */
|
91
|
-
const getHeight = (displayMode: ChatbotDisplayMode) => {
|
92
|
-
switch (displayMode) {
|
93
|
-
case ChatbotDisplayMode.docked:
|
94
|
-
return '100vh';
|
95
|
-
default:
|
96
|
-
return '45vh';
|
97
|
-
}
|
98
|
-
};
|
99
|
-
/* eslint-enable indent */
|
100
|
-
|
101
90
|
const modal = (
|
102
91
|
<ChatbotModal
|
103
92
|
isOpen={isModalOpen}
|
@@ -114,7 +103,7 @@ export const CodeModal: React.FunctionComponent<CodeModalProps> = ({
|
|
114
103
|
<StackItem className="pf-chatbot__code-modal-file-details">
|
115
104
|
<FileDetails fileName={fileName} />
|
116
105
|
</StackItem>
|
117
|
-
<StackItem>
|
106
|
+
<StackItem className="pf-chatbot__code-modal-body">
|
118
107
|
<CodeEditor
|
119
108
|
isDarkTheme
|
120
109
|
isLineNumbersVisible={isLineNumbersVisible}
|
@@ -126,7 +115,7 @@ export const CodeModal: React.FunctionComponent<CodeModalProps> = ({
|
|
126
115
|
onEditorDidMount={onEditorDidMount}
|
127
116
|
onCodeChange={onCodeChange}
|
128
117
|
className={codeEditorClassName}
|
129
|
-
|
118
|
+
isFullHeight
|
130
119
|
options={{
|
131
120
|
glyphMargin: false,
|
132
121
|
folding: false
|
@@ -9,7 +9,7 @@ exports[`FileDropZone should render file drop zone 1`] = `
|
|
9
9
|
>
|
10
10
|
<input
|
11
11
|
multiple=""
|
12
|
-
style="
|
12
|
+
style="border: 0px; clip: rect(0px, 0px, 0px, 0px); clip-path: inset(50%); height: 1px; margin: 0px -1px -1px 0px; overflow: hidden; padding: 0px; position: absolute; width: 1px; white-space: nowrap;"
|
13
13
|
tabindex="-1"
|
14
14
|
type="file"
|
15
15
|
/>
|
@@ -6,9 +6,9 @@ import React from 'react';
|
|
6
6
|
import { ExtraProps } from 'react-markdown';
|
7
7
|
import { List, ListComponent, OrderType } from '@patternfly/react-core';
|
8
8
|
|
9
|
-
const OrderedListMessage = ({ children }: JSX.IntrinsicElements['ol'] & ExtraProps) => (
|
9
|
+
const OrderedListMessage = ({ children, start }: JSX.IntrinsicElements['ol'] & ExtraProps) => (
|
10
10
|
<div className="pf-chatbot__message-ordered-list">
|
11
|
-
<List component={ListComponent.ol} type={OrderType.number}>
|
11
|
+
<List component={ListComponent.ol} type={OrderType.number} start={start}>
|
12
12
|
{children}
|
13
13
|
</List>
|
14
14
|
</div>
|
@@ -53,6 +53,22 @@ spec:
|
|
53
53
|
|
54
54
|
const INLINE_CODE = `Here is an inline code - \`() => void\``;
|
55
55
|
|
56
|
+
const ORDERED_LIST_WITH_CODE = `
|
57
|
+
1. Item 1
|
58
|
+
2. Item 2
|
59
|
+
|
60
|
+
\`\`\`yaml
|
61
|
+
- name: Hello World Playbook
|
62
|
+
hosts: localhost
|
63
|
+
tasks:
|
64
|
+
- name: Print Hello World
|
65
|
+
ansible.builtin.debug:
|
66
|
+
msg: "Hello, World!"
|
67
|
+
\`\`\`
|
68
|
+
|
69
|
+
3. Item 3
|
70
|
+
`;
|
71
|
+
|
56
72
|
const checkListItemsRendered = () => {
|
57
73
|
const items = ['Item 1', 'Item 2', 'Item 3'];
|
58
74
|
expect(screen.getAllByRole('listitem')).toHaveLength(3);
|
@@ -344,6 +360,12 @@ describe('Message', () => {
|
|
344
360
|
expect(screen.getByText('Here is an ordered list:')).toBeTruthy();
|
345
361
|
checkListItemsRendered();
|
346
362
|
});
|
363
|
+
it('should render ordered lists correctly if there is interstitial content', () => {
|
364
|
+
render(<Message avatar="./img" role="user" name="User" content={ORDERED_LIST_WITH_CODE} />);
|
365
|
+
checkListItemsRendered();
|
366
|
+
const list = screen.getAllByRole('list')[1];
|
367
|
+
expect(list).toHaveAttribute('start', '3');
|
368
|
+
});
|
347
369
|
it('should render inline code', () => {
|
348
370
|
render(<Message avatar="./img" role="user" name="User" content={INLINE_CODE} />);
|
349
371
|
expect(screen.getByText(/() => void/i)).toBeTruthy();
|
package/src/Message/Message.tsx
CHANGED
@@ -156,7 +156,7 @@ export const Message: React.FunctionComponent<MessageProps> = ({
|
|
156
156
|
p: TextMessage,
|
157
157
|
code: ({ children }) => <CodeBlockMessage {...codeBlockProps}>{children}</CodeBlockMessage>,
|
158
158
|
ul: UnorderedListMessage,
|
159
|
-
ol: OrderedListMessage
|
159
|
+
ol: (props) => <OrderedListMessage {...props} />,
|
160
160
|
li: ListItemMessage
|
161
161
|
}}
|
162
162
|
remarkPlugins={[remarkGfm]}
|