const bindAll = require('lodash.bindall'); const FormattedHTMLMessage = require('react-intl').FormattedHTMLMessage; const FormattedMessage = require('react-intl').FormattedMessage; // const injectIntl = require('react-intl').injectIntl; // const intlShape = require('react-intl').intlShape; const React = require('react'); const Button = require('../../components/forms/button.jsx'); const FlexRow = require('../../components/flex-row/flex-row.jsx'); // const MasonryGrid = require('../../components/masonrygrid/masonrygrid.jsx'); const TitleBanner = require('../../components/title-banner/title-banner.jsx'); // const NavigationBox = require('../../components/navigation/base/navigation.jsx'); const Comment = require('../../components/comment/comment.jsx'); const Page = require('../../components/page/www/page.jsx'); const render = require('../../lib/render.jsx'); require('./annual-report.scss'); class AnnualReport extends React.Component { constructor () { super(); this.messageRef = null; this.missionRef = null; this.reachRef = null; this.milestonesRef = null; this.initiativesRef = null; this.financialsRef = null; this.supportersRef = null; this.leadershipRef = null; this.donateRef = null; this.sectionRefs = { message: () => this.messageRef, mission: () => this.missionRef, reach: () => this.reachRef, milestones: () => this.milestonesRef, initiatives: () => this.initiativesRef, financials: () => this.financialsRef, supporters: () => this.supportersRef, leadership: () => this.leadershipRef, donate: () => this.donateRef }; bindAll(this, [ 'scrollTo', 'setMessageRef', 'setMissionRef', 'setReachRef', 'setMilestonesRef', 'setInitiativesRef', 'setFinancialsRef', 'setSupportersRef', 'setLeadershipRef', 'setDonateRef', 'handleSubNavItemClick' ]); } // A generic handler for a subnav item that takes the name of the // section to scroll to (all lowercase) handleSubNavItemClick (sectionName) { // Return a button click handler that scrolls to the // correct section return () => { this.scrollTo(this.sectionRefs[sectionName]()); }; } scrollTo (element) { if (element) { element.scrollIntoView({ behavior: 'smooth', block: 'start' }); } } setMessageRef (ref) { this.messageRef = ref; } setMissionRef (ref) { this.missionRef = ref; } setReachRef (ref) { this.reachRef = ref; } setMilestonesRef (ref) { this.milestonesRef = ref; } setInitiativesRef (ref) { this.initiativesRef = ref; } setFinancialsRef (ref) { this.financialsRef = ref; } setSupportersRef (ref) { this.supportersRef = ref; } setLeadershipRef (ref) { this.leadershipRef = ref; } setDonateRef (ref) { this.donateRef = ref; } render () { return (
We are especially grateful to our Founding Partners who supported us from the early days of Scratch, each providing at least $10,000,000 of cumulative support, in various forms.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vitae commodo orci, quis ultricies nisi