@@ -2,32 +2,47 @@ import React from "react";
22import ParagraphWidget from "../ParagraphWidget/ParagraphWidget" ;
33import HeadingWidget from "../HeadingWidget/HeadingWidget" ;
44import { connect } from "react-redux" ;
5- import { createWidgetForTopic , deleteWidget , updateWidget } from "../../actions/widgetActions" ;
5+ import {
6+ createWidgetForTopic ,
7+ deleteWidget ,
8+ moveWidgetDown ,
9+ moveWidgetUp ,
10+ updateWidget
11+ } from "../../actions/widgetActions" ;
612import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" ;
713import { faPlus } from "@fortawesome/free-solid-svg-icons" ;
14+ import "./WidgetList.css"
815
9-
10- const selectWidget = ( type , widget , deleteWidget , updateWidget ) => {
16+ const selectWidget = ( type , widget , deleteWidget , updateWidget , moveWidgetUp , moveWidgetDown ,
17+ lastIndex ) => {
1118
1219 switch ( type ) {
1320 case "HEADING" :
1421 return < HeadingWidget widget = { widget }
1522 deleteWidget = { deleteWidget }
16- updateWidget = { updateWidget } /> ;
23+ updateWidget = { updateWidget }
24+ moveWidgetUp = { moveWidgetUp }
25+ moveWidgetDown = { moveWidgetDown }
26+ lastIndex = { lastIndex } /> ;
1727 case "PARAGRAPH" :
1828 return < ParagraphWidget widget = { widget }
1929 deleteWidget = { deleteWidget }
20- updateWidget = { updateWidget } />
30+ updateWidget = { updateWidget }
31+ moveWidgetUp = { moveWidgetUp }
32+ moveWidgetDown = { moveWidgetDown }
33+ lastIndex = { lastIndex } />
2134
2235 }
2336}
2437
25- const WidgetList = ( { url, widgets, deleteWidget, updateWidget, createWidget} ) => {
38+ const WidgetList = ( { url, widgets, deleteWidget, updateWidget, createWidget, moveWidgetUp,
39+ moveWidgetDown} ) => {
2640 console . log ( widgets )
2741 return url . topicId ? < ul className = "container m-auto" >
2842 { widgets . map ( widget =>
2943 < li key = { widget . id } >
30- { selectWidget ( widget . type , widget , deleteWidget , updateWidget ) }
44+ { selectWidget ( widget . type , widget , deleteWidget ,
45+ updateWidget , moveWidgetUp , moveWidgetDown , widgets . length - 1 ) }
3146 </ li >
3247 )
3348 }
@@ -48,7 +63,9 @@ const stateToPropMapper = (state) => ({
4863const dispatchMapper = ( dispatch ) => ( {
4964 createWidget : ( topicId ) => createWidgetForTopic ( dispatch , topicId ) ,
5065 deleteWidget : ( widgetId ) => deleteWidget ( dispatch , widgetId ) ,
51- updateWidget : ( widget ) => updateWidget ( dispatch , widget )
66+ updateWidget : ( widget ) => updateWidget ( dispatch , widget ) ,
67+ moveWidgetUp : ( index ) => moveWidgetUp ( dispatch , index ) ,
68+ moveWidgetDown : ( index ) => moveWidgetDown ( dispatch , index )
5269} )
5370
5471
0 commit comments