Skip to content

Instantly share code, notes, and snippets.

View michaltakac's full-sized avatar
👨‍🏫
https://keybase.io/michaltakac

Michal Takac michaltakac

👨‍🏫
https://keybase.io/michaltakac
View GitHub Profile
@michaltakac
michaltakac / PageHeader.jsx
Created November 23, 2015 20:00
Meteorboard - page header component
import Component from 'react-pure-render/component';
import React, {PropTypes} from 'react';
import {Col} from 'react-bootstrap';
import {Link} from 'react-router';
export default class PageHeader extends Component {
static propTypes = {
description: PropTypes.string,
menu: PropTypes.object,
title: PropTypes.string.isRequired
@michaltakac
michaltakac / Page.jsx
Created November 23, 2015 19:55
Meteorboard - home page
import Component from 'react-pure-render/component';
import React, {PropTypes} from 'react';
export default class Page extends Component {
static propTypes = {
// ...
}
render() {
@michaltakac
michaltakac / Sidebar.jsx
Created November 20, 2015 22:50
Meteorboard - sidebar changing
import Component from 'react-pure-render/component';
import React, {PropTypes} from 'react';
import SidebarMenu from './SidebarMenu.react';
import {Image} from 'react-bootstrap';
import {Link} from 'react-router';
export default class Sidebar extends Component {
static propTypes = {
location: PropTypes.string.isRequired,
@michaltakac
michaltakac / Header.jsx
Created November 20, 2015 22:44
Meteorboard - Header component actions
import Component from 'react-pure-render/component';
import React, {PropTypes} from 'react';
export default class Header extends Component {
static propTypes = {
actions: PropTypes.object.isRequired,
pathname: PropTypes.string.isRequired,
ui: PropTypes.object.isRequired
}
@michaltakac
michaltakac / reducer.js
Created November 20, 2015 22:26
Meteorboard - UI reducer
import * as actions from './actions';
import {Record} from 'immutable';
const InitialState = Record({
isSideMenuOpen: false
});
const initialState = new InitialState;
export default function uiReducer(state = initialState, action) {
if (!(state instanceof InitialState)) return initialState;
@michaltakac
michaltakac / actions.js
Created November 20, 2015 22:22
Meteorboard - UI actions
export const ON_SIDE_MENU_CHANGE = 'ON_SIDE_MENU_CHANGE';
export const TOGGLE_SIDE_MENU = 'TOGGLE_SIDE_MENU';
export function onSideMenuChange(isOpen) {
return {
type: ON_SIDE_MENU_CHANGE,
payload: {isOpen}
};
}
@michaltakac
michaltakac / SidebarMenu.jsx
Created November 20, 2015 21:49
Meteorboard - SidebarMenu component
import React, {PropTypes} from 'react';
import {Link} from 'react-router';
import {Collapse} from 'react-bootstrap';
import NotificationCount from './NotificationCount.react';
export default class SidebarMenu extends React.Component {
constructor(props) {
super(props);
this.state = {
@michaltakac
michaltakac / Sidebar.jsx
Created November 20, 2015 21:32
Meteorboard - sidebar
import Component from 'react-pure-render/component';
import React, {PropTypes} from 'react';
import SidebarMenu from './SidebarMenu.react';
import {Image} from 'react-bootstrap';
import {Link} from 'react-router';
export default class Sidebar extends Component {
static propTypes = {
location: PropTypes.string.isRequired,
@michaltakac
michaltakac / MainMenu.js
Created November 20, 2015 21:14
Main menu object
export default {
name: 'Main menu',
menuItems: [
{
title: 'Dashboard',
link: null,
children: [
{
title: 'Submenu 1',
link: '#',
@michaltakac
michaltakac / ProfileMenu.js
Created November 20, 2015 21:14
Profile menu object
export default {
name: 'Profile menu',
menuItems: [
{
title: 'Profile',
link: '#',
children: [],
icon: 'fa fa-user fa-fw',
},
{