fix various bugs

This commit is contained in:
Shawn Erquhart
2018-07-17 11:37:17 -04:00
parent b7b90aaa65
commit 2e7406862e
15 changed files with 119 additions and 67 deletions

View File

@ -46,12 +46,12 @@
"mdast-util-definitions": "^1.2.2",
"mdast-util-to-string": "^1.0.4",
"moment": "^2.11.2",
"netlify-cms-editor-component-image": "file:../netlify-cms-editor-component-image",
"netlify-cms-lib-auth": "file:../netlify-cms-lib-auth",
"netlify-cms-lib-util": "file:../netlify-cms-lib-util",
"netlify-cms-ui-default": "file:../netlify-cms-ui-default",
"netlify-cms-editor-component-image": "file:../netlify-cms-editor-component-image",
"prop-types": "^15.5.10",
"react": "15.x || 16.x",
"react": "^16.4.1",
"react-aria-menubutton": "^5.1.0",
"react-autosuggest": "^9.3.2",
"react-datetime": "^2.11.0",
@ -69,7 +69,7 @@
"react-router-redux": "^5.0.0-alpha.8",
"react-scroll-sync": "^0.4.0",
"react-sortable-hoc": "^0.6.8",
"react-split-pane": "^0.1.81",
"react-split-pane": "^0.1.82",
"react-textarea-autosize": "^5.2.0",
"react-toggled": "^1.1.2",
"react-topbar-progress-indicator": "^2.0.0",

View File

@ -4,7 +4,8 @@ import { uniq, initial, last, get, find, hasIn, partial } from "lodash";
import { filterPromises, resolvePromiseProperties } from "netlify-cms-lib-util/promise";
import AssetProxy from "ValueObjects/AssetProxy";
import { SIMPLE, EDITORIAL_WORKFLOW, status } from "Constants/publishModes";
import { APIError, EditorialWorkflowError } from "netlify-cms-lib-util";
import APIError from "netlify-cms-lib-util/APIError";
import EditorialWorkflowError from "netlify-cms-lib-util/EditorialWorkflowError";
const CMS_BRANCH_PREFIX = 'cms/';

View File

@ -16,7 +16,7 @@ const PREVIEW_VISIBLE = 'cms.preview-visible';
const SCROLL_SYNC_ENABLED = 'cms.scroll-sync-enabled';
const styles = {
noPreviewContainer: css`
splitPane: css`
${components.card};
border-radius: 0;
height: 100%;
@ -53,18 +53,21 @@ injectGlobal`
}
}
`
const StyledSplitPane = styled(SplitPane)`
${styles.splitPane};
/**
* Quick fix for preview pane not fully displaying in Safari
*/
.SplitPane {
.Pane {
height: 100%;
}
.Pane {
height: 100%;
}
`
const NoPreviewContainer = styled.div`
${styles.noPreviewContainer};
${styles.splitPane};
`
const EditorContainer = styled.div`
@ -202,7 +205,7 @@ class EditorInterface extends Component {
const editorWithPreview = (
<ScrollSync enabled={this.state.scrollSyncEnabled}>
<div>
<SplitPane
<StyledSplitPane
maxSize={-100}
defaultSize="50%"
onDragStarted={this.handleSplitPaneDragStart}
@ -218,7 +221,7 @@ class EditorInterface extends Component {
getAsset={getAsset}
/>
</PreviewPaneContainer>
</SplitPane>
</StyledSplitPane>
</div>
</ScrollSync>
);

View File

@ -2,30 +2,25 @@ import React from 'react';
import PropTypes from 'prop-types';
import styled from 'react-emotion';
import Icon from 'netlify-cms-ui-default/Icon';
import { colors, colorsRaw, shadows } from 'netlify-cms-ui-default/styles';
import { colors, colorsRaw, shadows, buttons } from 'netlify-cms-ui-default/styles';
const EditorToggleButton = styled.button`
${buttons.button};
${shadows.dropMiddle};
background-color: ${colorsRaw.white};
color: ${props => colors[props.active ? `active` : `inactive`]};
color: ${props => colors[props.isActive ? `active` : `inactive`]};
border-radius: 32px;
display: block;
display: flex;
justify-content: center;
align-items: center;
width: 40px;
height: 40px;
padding: 0;
margin-bottom: 12px;
${Icon} {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
`
const EditorToggle = ({ enabled, active, onClick, icon }) => !enabled ? null :
<EditorToggleButton onClick={onClick}>
<EditorToggleButton onClick={onClick} isActive={active}>
<Icon type={icon} size="large"/>
</EditorToggleButton>;

View File

@ -18,6 +18,7 @@ const styles = {
height: 100%;
display: flex;
align-items: center;
border: 0 solid ${colors.textFieldBorder};
`,
}
@ -38,6 +39,7 @@ const ToolbarContainer = styled.div`
`
const ToolbarSectionMain = styled.div`
${styles.toolbarSection};
flex: 10;
display: flex;
justify-content: space-between;
@ -54,7 +56,6 @@ const ToolbarSubSectionLast = styled(ToolbarSubSectionFirst)`
const ToolbarSectionBackLink = styled(Link)`
${styles.toolbarSection};
border: 0 solid ${colors.textFieldBorder};
border-right-width: 1px;
font-weight: normal;
padding: 0 20px;
@ -116,6 +117,7 @@ const BackStatusChanged = styled(BackStatus)`
`
const ToolbarButton = styled.button`
${buttons.button};
${buttons.default};
${styles.buttonMargin};
display: block;
@ -151,6 +153,12 @@ const StatusButton = styled(StyledDropdownButton)`
color: ${colorsRaw.teal};
`
const StatusDropdownItem = styled(DropdownItem)`
${Icon} {
color: ${colors.infoText};
}
`
export default class EditorToolbar extends React.Component {
static propTypes = {
isPersisting: PropTypes.bool,
@ -265,17 +273,17 @@ export default class EditorToolbar extends React.Component {
<StatusButton>{isUpdatingStatus ? 'Updating...' : 'Set status'}</StatusButton>
)}
>
<DropdownItem
<StatusDropdownItem
label="Draft"
onClick={() => onChangeStatus('DRAFT')}
icon={currentStatus === status.get('DRAFT') && 'check'}
/>
<DropdownItem
<StatusDropdownItem
label="In review"
onClick={() => onChangeStatus('PENDING_REVIEW')}
icon={currentStatus === status.get('PENDING_REVIEW') && 'check'}
/>
<DropdownItem
<StatusDropdownItem
label="Ready"
onClick={() => onChangeStatus('PENDING_PUBLISH')}
icon={currentStatus === status.get('PENDING_PUBLISH') && 'check'}

View File

@ -15,6 +15,9 @@ const CloseButton = styled.button`
border-radius: 50%;
background-color: white;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
`
const LibraryTitle = styled.h1`

View File

@ -1,5 +1,5 @@
import { Map } from 'immutable';
import { resolvePath } from 'netlify-cms-lib-util';
import { resolvePath } from 'netlify-cms-lib-util/path';
import { ADD_ASSET, REMOVE_ASSET } from 'Actions/media';
import AssetProxy from 'ValueObjects/AssetProxy';

View File

@ -1,5 +1,5 @@
import { resolvePath } from 'netlify-cms-lib-util';
import { currentBackend } from "Backends/backend";
import { resolvePath } from 'netlify-cms-lib-util/path';
import { currentBackend } from 'Backends/backend';
import { getIntegrationProvider } from 'Integrations';
import { selectIntegration } from 'Reducers';