Skip to content

Instantly share code, notes, and snippets.

@hawkrives
Last active September 27, 2024 20:20
Show Gist options
  • Save hawkrives/26196cec12a0076ae9d31f456bc8b4d9 to your computer and use it in GitHub Desktop.
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)
@Cloudsicker
Copy link

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.

@juliaroberts981
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment