-
-
Save hawkrives/26196cec12a0076ae9d31f456bc8b4d9 to your computer and use it in GitHub Desktop.
File structure: | |
app.js | |
/modules/ | |
/menus/ | |
/streaming-media/ | |
/sis/ | |
index.js | |
state.js | |
/courses-list/ | |
/course-search/ | |
/time-entry/ | |
/student-work/ | |
/balances/ | |
index.js | |
state.js |
import React from 'react' | |
import {App} from '@frogpond/app' // 🔮 | |
import * as Menus from './modules/menus' | |
import * as SIS from './modules/sis' | |
// I'm envisioning that instead of a big `switch`, we'd <somehow> | |
// come up with a list of all loaded modules + screens and iterate | |
// through them? | |
// Or maybe this is when we switch to just adding the callback to | |
// the descriptor that we push into the navigator. | |
export default <App | |
iconSet={Ionicons} // 🔮 not quite sure how this would work yet | |
modules={[ // list of all modules | |
Menus, | |
SIS, | |
StreamingMedia, | |
]} | |
/> |
// This "module" essentially replaces the list of views in source/views/views.js | |
import React from 'react' | |
import TabbedView from '@frogpond/tabbed-view' | |
import * as BalancesTab from './balances' | |
import * as CoursesListTab from './courses-list' | |
import * as CourseSearchTab from './course-search' | |
import * as TimeEntryTab from './time-entry' | |
import * as StudentWorkTab from './student-work' | |
import {reducer, selector} from './state' // 🔮 | |
const tabs = [ | |
BalancesTab, | |
CoursesListTab, | |
CourseSearchTab, | |
TimeEntryTab, | |
StudentWorkTab, | |
] | |
export const view = () => <TabbedView tabs={tabs} /> | |
export {reducer, selector} // 🔮 might not need to export selector from here? | |
// remaining questions include "what is a selector" and "how can | |
// we automatically scope the visible state for a module" and | |
// "is that what a selector is for" | |
export const screenTitle = 'SIS' | |
export const icon = 'flower' | |
export const tintColor = '#fafafa' | |
export const gradientColor = ['#fafafa', '#afafaf'] |
// This "module" replaces the tab config. | |
import React from 'react' | |
import {connect} from 'react-redux' | |
import {TableView, Section, Cell} from '@frogpond/x-tableviews' | |
import {Row} from '@frogpond/x-layout' | |
import {reducer, selector} from './state' // 🔮 | |
const BalancesCell = ({title, detail}) => (/*do something*/) | |
const PlainBalances = ({flex, ole, print}) => | |
<Section title="Balances"> | |
<Row> | |
<BalancesCell title="Flex Dollars" detail={flex} /> | |
<BalancesCell title="Ole Dollars" detail={ole} /> | |
<BalancesCell title="StoPrint" detail={print} /> | |
</Row> | |
</Section> | |
const balancesConnector = connect(state => ({ // 🔮 | |
flex: state.flex, | |
ole: state.ole, | |
print: state.print, | |
}) | |
const Balances = balancesConnector(PlainBalances) | |
const PlainMealPlan = ({daily, weekly, description}) => | |
<Section title="Meals"> | |
<Row> | |
<BalancesCell title="Remaining Today" detail={daily} /> | |
<BalancesCell title="This Week" detail={weekly} /> | |
</Row> | |
</Section> | |
const mealsConnector = connect(state => ({ // 🔮 | |
daily: state.daily, | |
weekly: state.weekly, | |
}) | |
const MealPlan = mealsConnector(PlainMealPlan) | |
const WrapperView = ({loggedIn}) => | |
<TableView> | |
<Balances /> | |
<MealPlan /> | |
{!loggedIn ? <LoginWarning /> : null} | |
</TableView> | |
const wrapperConnector = connect(state => ({ // 🔮 | |
loggedIn: state.stolaf.loggedIn, | |
}) | |
export const View = wrapperConnector(WrapperView) |
Immersing myself in the online gaming scene in Nigeria has been an extraordinary journey, especially thanks to this fantastic platform. I was completely blown away by how intuitive and user-friendly everything is. Trust me, this is one of those experiences that you have to try firsthand to fully grasp. It's like entering a whole new universe, one that takes your gaming experience to an entirely different level. Right in the middle of it all is 1win Nigeria, a platform that's been a game-changer in every sense of the word. It has revolutionized my gaming world, and I can vouch for the tremendous impact it's had on my overall experience.
E aí, pessoal! Eu estava navegando pela internet e vi uma recomendação sobre o https://fortunemouse.net.br/demo, então decidi testar. No começo, parecia ser só mais um jogo de azar, mas logo vi que a diversão estava garantida! Depois de algumas tentativas frustradas, finalmente consegui uma boa vitória. Se você está no Brasil e busca algo simples e agradável para jogar, vale muito a pena dar uma chance a esse jogo.
In today's world, there's an abundance of services and websites offering opportunities to earn money. If you're looking to turn your hobbies into a source of income, consider using a platform [like https://www.newukcasino.uk/bonuses-casino/](like https://www.newukcasino.uk/bonuses-casino/) . Personally, I've been using it for just 2 months, and I've already discovered how lucrative it can be with its bonuses and guidance.