Skip to content

Instantly share code, notes, and snippets.

View kawnayeen's full-sized avatar

Kamarul Kawnayeen kawnayeen

View GitHub Profile
@kawnayeen
kawnayeen / app.js
Created April 3, 2019 05:30
Enhanced Youtube # 6 - Show selected video at video details
// at app.js -- write a call back to update selectedVideo & provide that as props at VideoList
onVideoSelect={selectedVideo => this.setState({selectedVideo})}
// at video.list.js -- extract the callback from props and send that to VideoListItem
const onVideoSelect = props.onVideoSelect;
const videoList = videos.map( v => <VideoListItem onVideoSelect={onVideoSelect} key={v.etag} video={v} />);
// at video.list.item.js -- call the call back
const VideoListItem = ({video, onVideoSelect})
<li className="list-group-item" onClick={() => onVideoSelect(video)}>
@kawnayeen
kawnayeen / video.details.js
Created April 3, 2019 01:57
Enhanced Youtube # 5 - Video Details
// step one
const VideoDetail = ({video}) => {
console.log("called here: "+video);
if(!video) {
return <div>Loading...</div>
}
const videoId = video.id.videoId;
const url = `https://www.youtube.com/embed/${videoId}`;
let {title, description} = video.snippet;
return (
@kawnayeen
kawnayeen / video.list.item.js
Created April 2, 2019 17:43
Enhanced Youtube #4 - Video List Item
// step one
const VideoListItem = ({video}) => {
console.log(video);
return (
<li className="list-group-item">
<div className="video-list media">
<div className="media-left">
<img className="media-object" />
</div>
<div className="media-body">
@kawnayeen
kawnayeen / video.list.js
Last active April 2, 2019 17:12
Enhanced Youtube # 3 - Video List
// step one
const VideoList = (props) => {
const videos = props.videos;
return (
<ul className="col-md-4 list-group">
{videos.length}
</ul>
);
};
@kawnayeen
kawnayeen / app.js
Last active April 3, 2019 09:04
Enhanced Youtube #2 - Search from youtube
// defining state
state = {
videos: [],
selectedVideo: null
};
// fetch video at startup
componentDidMount() {
this.searchNewVideos('Caspian Report')
}
@kawnayeen
kawnayeen / app.js
Last active April 3, 2019 08:57
Enhanced Youtube # 1 - Search Bar
class App extends Component {
render() {
return (
<div>
<SearchBar onSearchTermChange={term => this.onSearchTermChange(term)}/>
</div>
);
}
onSearchTermChange(term){
@kawnayeen
kawnayeen / member-list.js
Last active December 13, 2017 11:06
ListView :)
// constructor
constructor() {
super();
this.employees = [
{'name': 'Himel'},
{'name': 'Rana'},
{'name': 'Shuvro'},
{'name': 'Proshad'}
];
}
@kawnayeen
kawnayeen / App.js
Last active December 13, 2017 11:05
Scene Transiton
renderLogin() {
if(this.state.loginVisible){
return (
<Login
visible={this.state.loginVisible}
titleBarApi={this.setTitleBar.bind(this)}
goToMemberList={this.goToMemberList.bind(this)}
/>
);
}
@kawnayeen
kawnayeen / button.js
Last active December 13, 2017 11:05
Button component
import React from 'react';
import { Text, TouchableOpacity } from 'react-native';
const Button = ({ onPress, children }) => {
const { buttonStyle, textStyle } = styles;
return (
<TouchableOpacity onPress={onPress} style={buttonStyle}>
<Text style={textStyle}>
{children}
@kawnayeen
kawnayeen / email.input.js
Last active December 13, 2017 11:05
Input field component
onEmailChange(text) {
this.emailAddress = text;
}
<Input
label="Email"
placeholder="email@gmail.com"
onChangeText={this.onEmailChange.bind(this)}
/>