Last active
September 27, 2024 20:20
-
-
Save hawkrives/26196cec12a0076ae9d31f456bc8b4d9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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 file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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) |
The graphics and sound effects on this site are really something. I’ve played on other platforms where the games feel outdated, but here everything looks modern and polished. It really enhances the experience, making each game feel more immersive and fun. If you’re someone who appreciates good visuals and audio in your games, I’d suggest taking a look at https://www.777-online.com/. It’s the kind of attention to detail that makes the difference between just playing and really enjoying the experience, and for me, that’s what makes this site stand out compared to others I’ve tried.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.