/* 

List of movies. 
Wrapped with the "withList" and "withCurrentUser" containers.

*/

import React from 'react';
import { Components, withCurrentUser, registerComponent } from 'meteor/vulcan:core';

import Movies from '../../modules/movies/index.js';

const ReactionCell = ({column, document, currentUser}) =>
  <Components.Reaction collection={Movies} document={document} currentUser={currentUser} />

const MoviesList = ({results = [], currentUser, loading, loadMore, count, totalCount}) => 
  
  <div>

    {loading ? 

      <Components.Loading /> :

      <div className="movies">
        
        {/* new document form */}

        {Movies.options.mutations.new.check(currentUser) ?
          <div style={{marginBottom: '20px', paddingBottom: '20px', borderBottom: '1px solid #ccc'}}>
            <h4>Insert New Document</h4>
            <Components.SmartForm collection={Movies} /> 
          </div> :
          null
        }

        {/* documents list */}

        <Components.Datatable 
          collection={Movies} 
          showSearch={false}
          showEdit={true}
          columns={[
            {
              name: 'reaction',
              component: ReactionCell
            },
            'name',
            'year',
            'review'
          ]}
          options={{
            fragmentName: 'MovieFragment',
          }}
        />
        
        {/* load more */}

        {totalCount > results.length ?
          <a href="#" onClick={e => {e.preventDefault(); loadMore();}}>Load More ({count}/{totalCount})</a> : 
          <p>No more items.</p>
        }

      </div>
    }

  </div>

registerComponent('MoviesList', MoviesList, withCurrentUser);