Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI Overhaul (Incomplete) #4

Merged
merged 4 commits into from
Feb 1, 2023
Merged

UI Overhaul (Incomplete) #4

merged 4 commits into from
Feb 1, 2023

Conversation

lewxdev
Copy link
Owner

@lewxdev lewxdev commented Feb 1, 2023

Addresses #2, #3

Screenshot 2023-02-01 at 14 44 29

What's changed

Initial Vite/React setup ⚡

(started from a clean working directory with the same git history)

  • Bootstrapped project from the Vite react template (with TypeScript and SWC)
  • Added initial configuration for ESLint and Prettier
  • Using husky as a pre-commit hook utility (linting, formating, and testing)
  • Changed manifest.json icons and favicons to match intended design
  • Implemented maskable icons in the manifest.json as suggested by the PWA documentation
    learn more: https://web.dev/maskable-icon
  • Made changes to improve overall SEO (head metadata, robots.txt [unconfigured], etc.)

Jest testing & Redux 🧪

  • Implemented redux state slices for game and UI
  • Added initial respective tests for redux state slices
  • Initial configuration for react-redux with @reduxjs/toolkit
  • Added configuration for jest with typescript
  • Added ESLint rule for typescript consistent type imports

Initial UI implementation 💎

(considering this 'MVP', working state, but a lot of cleanup and additions needed)

  • Configured usage for Tailwind as the CSS framework (it's my first time, don't @ me)
  • Implemented UI components as close to the design spec as possible (need to figure out dynamic scaling for the disks/towers)

Features

  • Standard gameplay with rudimentary win condition, incrementing the 'diskCount' each successive win from an confirmation dialog (built-in)
  • Complex but subtle transitions/animations for tower hover and selection states
  • Keyboard shortcuts for tower selection
  • Reset game option
  • Stats for the number of moves and the minimum number of moves to win

Todo

  • Add timer to game state slice (likely timestamp comparison rather than an interval)
  • Implement logic and display for score multiplier (an equation that computes a number between 0 and 1 based on the timer, number of moves, and minimum number of moves)
  • Create a modal component to be used for a custom win dialog and future content
  • Investigate TailwindCSS class composition that works well with their prettier plugin
  • Add responsive drawer menu and implement the corresponding options

(started from a clean working directory with the same git history)
- Bootstrapped project from the Vite react template (with TypeScript and SWC)
- Added initial configuration for ESLint and Prettier
- Using husky as a pre-commit hook utility (linting, formating, and testing)
- Changed manifest.json icons and favicons to match intended design
- Implemented maskable icons in the manifest.json as suggested by the PWA documentation
  learn more: https://web.dev/maskable-icon
- Made changes to improve overall SEO (head metadata, robots.txt [unconfigured], etc.)
- Implemented redux state slices for game and UI
- Added initial respective tests for redux state slices
- Initial configuration for react-redux with @reduxjs/toolkit
- Added configuration for jest with typescript
- Added ESLint rule for typescript consistent type imports
(considering this 'MVP', working state, but a lot of cleanup and additions needed)
- Configured usage for Tailwind as the CSS framework (it's my first time, don't @ me)
- Implemented UI components as close to the design spec as possible (need to figure out dynamic scaling for the disks/towers)

Features:
- Standard gameplay with rudimentary win condition, incrementing the 'diskCount' each successive win from an confirmation dialog (built-in)
- Complex but subtle transitions/animations for tower hover and selection states
- Keyboard shortcuts for tower selection
- Reset game option
- Stats for the number of moves and the minimum number of moves to win

Todo:
- Add timer to game state slice (likely timestamp comparison rather than an interval)
- Implement logic and display for score multiplier (an equation that computes a number between 0 and 1 based on the timer, number of moves, and minimum number of moves)
- Create a modal component to be used for a custom win dialog and future content
- Investigate TailwindCSS class composition that works well with their prettier plugin
- Add responsive drawer menu and implement the corresponding options
@lewxdev lewxdev self-assigned this Feb 1, 2023
@lewxdev
Copy link
Owner Author

lewxdev commented Feb 1, 2023

I think it's good so far. Wanting to test out the GitHub workflow for deployment, so I'm going to go ahead and rubber-stamp this.
I'll also move those todos to their own respective issues

@lewxdev lewxdev merged commit 890ad35 into main Feb 1, 2023
@lewxdev lewxdev deleted the lewxdev/vite-react-migration branch February 1, 2023 19:57
@lewxdev lewxdev restored the lewxdev/vite-react-migration branch February 1, 2023 20:00
@lewxdev lewxdev deleted the lewxdev/vite-react-migration branch February 1, 2023 23:50
@lewxdev lewxdev mentioned this pull request Feb 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant