@@ -491,19 +360,3 @@ const Publish: React.FC { - const logDialogProps = { - title: 'Publish Log', - }; - return ( - - ); -}; diff --git a/Composer/packages/client/src/pages/publish/PublishDialog.tsx b/Composer/packages/client/src/pages/publish/PublishDialog.tsx index 74b9205e31..37963b6f65 100644 --- a/Composer/packages/client/src/pages/publish/PublishDialog.tsx +++ b/Composer/packages/client/src/pages/publish/PublishDialog.tsx @@ -10,11 +10,11 @@ import { TextField } from 'office-ui-fabric-react/lib/TextField'; import formatMessage from 'format-message'; import { CheckboxVisibility, DetailsList } from 'office-ui-fabric-react/lib/DetailsList'; -import { IBotStatus } from './BotStatusList'; +import { BotStatus } from './type'; export const PublishDialog = (props) => { const { items } = props; - const [showItems, setShowItems] = useState(items); + const [showItems, setShowItems] = useState(items); const columns = [ { key: 'name', @@ -25,7 +25,7 @@ export const PublishDialog = (props) => { maxWidth: 90, isMultiline: true, data: 'string', - onRender: (item: IBotStatus) => { + onRender: (item: BotStatus) => { return {item.name}; }, isPadded: true, @@ -39,7 +39,7 @@ export const PublishDialog = (props) => { maxWidth: 200, isMultiline: true, data: 'string', - onRender: (item: IBotStatus) => { + onRender: (item: BotStatus) => { return {item.publishTarget}; }, isPadded: true, @@ -52,7 +52,7 @@ export const PublishDialog = (props) => { minWidth: 70, maxWidth: 90, data: 'string', - onRender: (item: IBotStatus) => { + onRender: (item: BotStatus) => { // message for each publish bot return ( void; isRollbackSupported: boolean; - onLogClick: (item: PublishResult) => void; onRollbackClick: (item: PublishResult) => void; -} +}; function onRenderDetailsHeader(props, defaultRender) { return ( @@ -37,16 +38,15 @@ function onRenderDetailsHeader(props, defaultRender) { ); } -export const PublishStatusList: React.FC = (props) => { - const { items, isRollbackSupported, onLogClick, onRollbackClick } = props; +export const PublishStatusList: React.FC = (props) => { + const { items, isRollbackSupported, onRollbackClick } = props; + const [displayedLog, setDisplayedLog] = useState(null); const [currentSort, setSort] = useState({ key: 'PublishDate', descending: true }); - const sortByDate = (ev: React.MouseEvent, column: IColumn): void => { - if (column.isSorted && items) { - column.isSortedDescending = !column.isSortedDescending; - const newItems: PublishResult[] = items.slice().reverse(); - props.updateItems(newItems); - } - }; + const displayedItems = useMemo(() => { + if (currentSort.descending) return items; + return items.slice().reverse(); + }, [items, currentSort]); + const columns = [ { key: 'PublishTime', @@ -70,7 +70,6 @@ export const PublishStatusList: React.FC = (props) => { minWidth: 70, maxWidth: 90, isRowHeader: true, - onColumnClick: sortByDate, data: 'string', onRender: (item: PublishResult) => { return {moment(item.time).format('MM-DD-YYYY')}; @@ -86,9 +85,9 @@ export const PublishStatusList: React.FC = (props) => { maxWidth: 40, data: 'string', onRender: (item: PublishResult) => { - if (item.status === 200) { + if (item.status === ApiStatus.Success) { return ; - } else if (item.status === 202) { + } else if (item.status === ApiStatus.Publishing) { return (
@@ -160,7 +159,7 @@ export const PublishStatusList: React.FC = (props) => { allowDisabledFocus styles={{ root: { color: '#0078D4' } }} onClick={() => { - onLogClick(item); + setDisplayedLog(item.log || ''); }} > {formatMessage('View log')} @@ -185,7 +184,7 @@ export const PublishStatusList: React.FC = (props) => { { onRollbackClick(item); }} @@ -210,7 +209,7 @@ export const PublishStatusList: React.FC = (props) => { isSortedDescending: currentSort.descending, }))} css={detailList} - items={items} + items={displayedItems} styles={{ root: { selectors: { '.ms-DetailsRow-fields': { display: 'flex', alignItems: 'center' } } } }} onColumnHeaderClick={(_, clickedCol) => { if (!clickedCol) return; @@ -224,6 +223,7 @@ export const PublishStatusList: React.FC = (props) => { onRenderDetailsHeader={onRenderDetailsHeader} />
+ {displayedLog !== null ? setDisplayedLog(null)} /> : null}