Skip to content

Instantly share code, notes, and snippets.

@RubyRubenstahl
Created February 22, 2017 18:39
Show Gist options
  • Save RubyRubenstahl/83463e4b1e9f6e9c376842718a67faa3 to your computer and use it in GitHub Desktop.
Save RubyRubenstahl/83463e4b1e9f6e9c376842718a67faa3 to your computer and use it in GitHub Desktop.
import React, { PropTypes } from 'react';
import UsersNavBar from '../components/TranscriptsNavBar';
import TranscriptCardList from './TranscriptCardListContainer';
const Screen = ({transcripts=[], deleteTranscript}) => (
<div>
<UsersNavBar label="Transcripts" screen="transcriptlist" />
<TranscriptCardList
transcripts={transcripts}
deleteTranscript = {deleteTranscript}
/>
</div>
)
export default Screen;
/**
* Created by Mike on 2/21/2017.
*/
import React, { PropTypes } from 'react';
import {Card, CardActions, CardHeader, CardMedia, CardTitle, CardText} from 'material-ui/Card';
import FlatButton from 'material-ui/FlatButton';
//TODO: grab avatar image dynamcially
//TODO: wire up edit button
//TODO: wire up delete button
//TODO: Render text only if we're expanded
const TranscriptCard = ({transcript, deleteTranscript}) => {
const {title = "", date, speaker="", text="", _id=""} = transcript;
const deleteClickHandler = (id) => {
console.log(id)
}
//console.log(deleteTranscript);
return(
<Card >
<CardHeader
title={title}
subtitle={speaker}
actAsExpander={true}
showExpandableButton={true}
avatar={'/images/avatars/donald-trump.jpg'}
>
</CardHeader>
<CardText expandable={true}>
{text}
</CardText>
<CardActions expandable={true}>
<FlatButton label="Edit" />
<FlatButton label="Delete"
onTouchTap={() => deleteClickHandler(_id)} />
</CardActions>
</Card>
)
}
export default TranscriptCard;
/**
* Created by Mike on 2/21/2017.
*/
import React, { PropTypes } from 'react';
import TranscriptCard from './TranscriptCard';
import Subheader from 'material-ui/Subheader';
import Card from 'material-ui/Card';
class TranscriptCardList extends React.Component{
componentDidMount(){
this.props.loadTranscripts();
}
render() {
const {transcripts, deleteTranscript} = this.props;
return (
<Card>
<Subheader>Today</Subheader>
{transcripts.map(transcript => {
return (<TranscriptCard
transcript={transcript}
deleteTranscript={deleteTranscript}
key={transcript._id}/>)
}
)}
</Card>
)
}
}
export default TranscriptCardList;
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { feathersServices } from '../../../feathers';
import TranscriptCardList from './TranscriptCardList'
const getTranscripts = (queryResult) => {
if(!queryResult) return [];
return(queryResult.data);
}
const mapStateToProps = (state) =>({
transcripts: getTranscripts(state.transcripts.queryResult)
});
const deleteTranscripts = (id, dispatch) => {
console.log('deleting');
console.log('deleting...', id, dispatch);
dispatch(feathersServices.transcripts.remove(id)).then((result) => console.log(result));
}
const mapDispatchToProps = (dispatch) => {
return {
loadTranscripts: (query) => dispatch(feathersServices.transcripts.find(query)),
deleteTranscript: (id) => deleteTranscripts(id, dispatch)
}
};
export default connect(mapStateToProps, mapDispatchToProps)(TranscriptCardList);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment