From 30c11954d586c43a00c8c61fa467873bfe1ed1fc Mon Sep 17 00:00:00 2001
From: Francois-Stevenart
<51128673+Francois-Stevenart@users.noreply.github.com>
Date: Fri, 29 Jan 2021 16:26:56 +0100
Subject: [PATCH] feat(widget-image): enable images ordering (#4857)
---
packages/netlify-cms-widget-file/package.json | 4 +-
.../src/withFileControl.js | 57 +++++++++++++++----
yarn.lock | 5 ++
3 files changed, 54 insertions(+), 12 deletions(-)
diff --git a/packages/netlify-cms-widget-file/package.json b/packages/netlify-cms-widget-file/package.json
index c5f998a6..f9fa2835 100644
--- a/packages/netlify-cms-widget-file/package.json
+++ b/packages/netlify-cms-widget-file/package.json
@@ -23,7 +23,9 @@
"build:esm": "cross-env NODE_ENV=esm babel src --out-dir dist/esm --ignore \"**/__tests__\" --root-mode upward"
},
"dependencies": {
- "common-tags": "^1.8.0"
+ "common-tags": "^1.8.0",
+ "react-sortable-hoc": "^1.0.0",
+ "array-move": "3.0.1"
},
"peerDependencies": {
"@emotion/core": "^10.0.35",
diff --git a/packages/netlify-cms-widget-file/src/withFileControl.js b/packages/netlify-cms-widget-file/src/withFileControl.js
index 5348d90f..1d9b2aa9 100644
--- a/packages/netlify-cms-widget-file/src/withFileControl.js
+++ b/packages/netlify-cms-widget-file/src/withFileControl.js
@@ -2,12 +2,15 @@ import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
import styled from '@emotion/styled';
+import { css } from '@emotion/core';
import { Map, List } from 'immutable';
import { once } from 'lodash';
import uuid from 'uuid/v4';
import { oneLine } from 'common-tags';
import { lengths, components, buttons, borders, effects, shadows } from 'netlify-cms-ui-default';
import { basename } from 'netlify-cms-lib-util';
+import { SortableContainer, SortableElement } from 'react-sortable-hoc';
+import arrayMove from 'array-move';
const MAX_DISPLAY_LENGTH = 50;
@@ -22,6 +25,7 @@ const ImageWrapper = styled.div`
overflow: hidden;
${effects.checkerboard};
${shadows.inset};
+ cursor: ${props => (props.sortable ? 'pointer' : 'auto')};
`;
const StyledImage = styled.img`
@@ -32,10 +36,34 @@ const StyledImage = styled.img`
const Image = props =>