diff --git a/openmetadata-ui/src/main/resources/ui/src/App.tsx b/openmetadata-ui/src/main/resources/ui/src/App.tsx
index a8d02d28b52..a52fc73dff7 100644
--- a/openmetadata-ui/src/main/resources/ui/src/App.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/App.tsx
@@ -18,6 +18,7 @@ import {
faCheckSquare,
faChevronDown,
faChevronRight,
+ faChevronUp,
faPlus,
faSearch,
faTimes,
@@ -39,7 +40,8 @@ const App: FunctionComponent = () => {
faCheckSquare,
faCheckCircle,
faChevronDown,
- faChevronRight
+ faChevronRight,
+ faChevronUp
);
return (
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/SampleDataTopic/SampleDataTopic.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/SampleDataTopic/SampleDataTopic.test.tsx
new file mode 100644
index 00000000000..377ba2e0847
--- /dev/null
+++ b/openmetadata-ui/src/main/resources/ui/src/components/SampleDataTopic/SampleDataTopic.test.tsx
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { render } from '@testing-library/react';
+import React from 'react';
+import { MemoryRouter } from 'react-router-dom';
+import SampleDataTopic from './SampleDataTopic';
+
+const mockSampleData = {
+ messages: ['{"email":"data","name":"job"}'],
+};
+
+describe('Test SampleData Component', () => {
+ it('Should render message cards', () => {
+ const { getAllByTestId } = render(
+ ,
+ {
+ wrapper: MemoryRouter,
+ }
+ );
+
+ const messageCards = getAllByTestId('message-card');
+
+ expect(messageCards).toHaveLength(mockSampleData.messages.length);
+ });
+
+ it('Should render no data placeholder if no data available', () => {
+ const { getByTestId } = render(, {
+ wrapper: MemoryRouter,
+ });
+
+ const noDataPlaceHolder = getByTestId('no-data');
+
+ expect(noDataPlaceHolder).toBeInTheDocument();
+ });
+});
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/SampleDataTopic/SampleDataTopic.tsx b/openmetadata-ui/src/main/resources/ui/src/components/SampleDataTopic/SampleDataTopic.tsx
new file mode 100644
index 00000000000..0eb3f4a5943
--- /dev/null
+++ b/openmetadata-ui/src/main/resources/ui/src/components/SampleDataTopic/SampleDataTopic.tsx
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2021 Collate
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+import { isUndefined } from 'lodash';
+import React, { FC, HTMLAttributes, useState } from 'react';
+import { TopicSampleData } from '../../generated/entity/data/topic';
+import { withLoader } from '../../hoc/withLoader';
+import SchemaEditor from '../schema-editor/SchemaEditor';
+
+interface SampleDataTopicProp extends HTMLAttributes {
+ sampleData?: TopicSampleData;
+}
+
+const MessageCard = ({ message }: { message: string }) => {
+ const [isExpanded, setIsExpanded] = useState(false);
+
+ return (
+