+
{formatMessage('Notifications')}
+
{
+ if (option) onChange(option.data);
+ }}
+ options={options}
+ styles={dropdownStyles}
+ data-testid="notifications-dropdown"
+ />
+
+ );
+};
diff --git a/Composer/packages/client/src/pages/notifications/NotificationList.tsx b/Composer/packages/client/src/pages/notifications/NotificationList.tsx
new file mode 100644
index 0000000000..15b573daf0
--- /dev/null
+++ b/Composer/packages/client/src/pages/notifications/NotificationList.tsx
@@ -0,0 +1,88 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
+
+/** @jsx jsx */
+import { jsx } from '@emotion/core';
+import { DetailsList, DetailsListLayoutMode, SelectionMode, IColumn } from 'office-ui-fabric-react/lib/DetailsList';
+import { FontIcon } from 'office-ui-fabric-react/lib/Icon';
+
+import { INotification } from './types';
+import { notification, typeIcon, listRoot, icons } from './styles';
+
+export interface INotificationListProps {
+ items: INotification[];
+}
+
+const columns: IColumn[] = [
+ {
+ key: 'Icon',
+ name: '',
+ className: notification.typeIconCell,
+ iconClassName: notification.typeIconHeaderIcon,
+ fieldName: 'icon',
+ minWidth: 30,
+ maxWidth: 30,
+ onRender: (item: INotification) => {
+ return