thiskevinwang/coffee-code-climb

View on GitHub
CHANGELOG.md

Summary

Maintainability
Test Coverage
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [v0.23.4] - 2020-12-25

### Added

- blog post: `2020/12/16/new-features-in-q4`

## [v0.23.3] - 2020-12-15

### Fixed

- re-added missing fields from GetUsers query
  - family_name
  - given_name

### Added

- `MapIdToUser` components
- UserPage at `/u` and `/u/*` 🚧 UNDER CONSTRUCTION

### Removed

- redux usage from LoadingPage

## [v0.23.2] - 2020-12-14

### Changed

- Clean up User fields. Backend changes will cause versions prior to this to break

## [v0.23.1] - 2020-12-14

### 🐛 Fix

- uncommented code, which was resulting in undefined authorId when commenting

## [v0.23.0] - 2020-12-14

This version encompasses work for a POC of recreating GitHub's 'Discussions' feature, and depends on [v0.7.0 Backend](https://github.com/thiskevinwang/rds-ts-node-server/compare/v0.6.3...v0.7.0)

### Added

- `draft.js`
- `secondary` prop & styles to `SubmitButton`
- `RichEditor` component
- extracted `components/App/Shared/TextField`
- `yup` for formik validation

### Changed

- enabled a `fs.Fieldset` `hoverable` prop

### Fixed

- `useWindowScrollPercent` sometimes causing `Blob`'s path to throw a NaNNaNNaN error

## [v0.22.1] - 2020-12-09

I _think_ this finally fixes exif-data-caused orientation problems as well as incorrect cropping with `react-crop`.

See https://github.com/DominicTobias/react-image-crop/issues/181

### Fixed

- mobile image upload orientation & cropping

### Added

- `blueimp-load-image`
- @types/blueimp-load-image`
- DEV section in `AvatarCropper`

### Todo

- Document the image orientation fix

## [v0.22.0] - 2020-12-08

This change introduces a bottom navigation component & drawer.

### Added

- SimpleBottomNavigation
- SwipeableTemporaryDrawer
  - this component is an Avatar that opens a drawer
  - this reads the avatar_url from apollo cache

### Changed

- layout2 uses SimpleBottomNavigation
- `notistack` snackbars positioned at top, for XS screens

## [v0.21.2] - 2020-12-08

### Added

- fun title-text gradient, on hover (copied from Github)

## [v0.21.1] - 2020-12-08

### Fixed

- Missing button margin-bottoms on /auth/signup & /auth/login

## [v0.21.0] - 2020-12-06

**NEW**: AvatarCropper (again)

In this tag, I went back and tried to refactor S3-avatar-uploading code that I completely forgot how to do.

🐛 I encountered a _pretty real_ bug with object versioning on an S3 bucket.

- I uploaded images on the same **key**: 🐳 -> 🐈 -> 🦜
  - The object gets created and displays on the frontend fine (🐳)
- I'd the second image (🐈)
  - The version ID & revision-date would get bumped correctly, but the actual object would still be the previous image, (🐳)
- Meanwhile in S3, the (🐈) would be _floating around, somewhere in the AWS ether, invisibly..._
- I'd upload a third image (🦜)
  - The more recent object **still** displayed (🐳)
  - The (🐈) image would suddenly appear in version history
  - The (🦜) would be next to _float around in the ether_

☝️ Solution? ... delete and recreate the bucket 🤷🏻‍♂️

- Needed to make it public
- And add [CORS json](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors)

### Added

- `<Modal.*>` component
- `<AvatarCropper>` component

### Changed

- NavBar2 uses MUI AppBar
  - hide NavBar2 on "xs down"
- override typography.js `img` margin on `/app` pages
- SubmitButton: removed `margin-bottom`
- Updated graphql-generated types
- unset `maxWidth` on layout.tsx & layout2.tsx
  - `Box`'s under /app should have
    ```ts
    px = "var(--geist-gap)"
    mx = "auto"
    maxWidth = "var(--geist-page-width-with-margin)"
    ```

### Removed

- momentjs
- `breakoutFromMaxWidth` - no more legacy layout headache to deal with

## [v0.20.3] - 2020-12-02

### Fixed

- temporary fix for incorrect SSR styles
  - see MUI / jss

## [v0.20.2] - 2020-12-02

### Changed

- Moved some logs behind `__DEV__`

## [v0.20.1] - 2020-12-02

### Added

- `notistack` + SnackbarProvider w/ styles
- Various skeleton UI elements for query loading

### Changed

- logout triggers snackbar message
- social login success triggers snackbar message
- one-time code success triggers snackbar message
- username success/error triggers snackbar message

### Fixed

- 'breakoutFromMaxWidth'.. again

## [v0.20.0] - 2020-12-01

### Added

- ✨ feature to update username!

### Changed

- added `graphql-codegen`
- added generated types
- refactored to use Dynamo backend
  - see https://github.com/thiskevinwang/rds-ts-node-server/compare/v0.4.0...v0.5.0

## [v0.19.5] - 2020-11-30

### Added

- FacebookSDK.tsx (unimplemented)
- GoogleSDK.tsx (unimplemented)

## [v0.19.4] - 2020-11-30

### Changed

- SubmitButton style
- bumped `aws-sdk` ^2.778.0 to 2.799.0
  - removed `credentials` because I deleted an Identity Pool
- extracted Blob component

## [v0.19.3] - 2020-11-29

### Added

- Alert component; implemented in auth flow
  - /auth/login
  - /auth/signup
  - /auth/verify

### Changed

- facebook svg icon

### Fixed

- SvgTrail overflow problems
  - `#___gatsby` position relative
- 'breakoutFromMaxWidth' margin errors b0c6cae
  - TODO: figure out why it worked

## [v0.19.2] - 2020-11-27

### Fixed

- Added SEO component for missing title metadata on `/app/*`

## [v0.19.1] - 2020-11-26

### Added

- FieldSet component
  - see https://vercel.com/design/fieldset
- /app/profile fetches data; depends on:
  - https://github.com/thiskevinwang/rds-ts-node-server/pull/28
  - https://github.com/thiskevinwang/rds-ts-node-server/compare/v0.3.1...v0.4.0
  - ![image](https://user-images.githubusercontent.com/26389321/100408368-d254b280-3038-11eb-8751-b57e0f59f2c9.png)
- /app/settings significant UI changes
  - ![image](https://user-images.githubusercontent.com/26389321/100408402-e4365580-3038-11eb-8f22-7cb017a65786.png)

### Removed

- /auth/forgot page
- /auth/reset page
- header links on /app pages

## [v0.19.0] - 2020-11-25

Google federated signin & Email magic codes

- see https://aws.amazon.com/blogs/mobile/implementing-passwordless-email-authentication-with-amazon-cognito/ for TypeScript lambda triggers

## [v0.18.3] - 2020-11-22

The bulk of this version is styling the `/pages/app` component, to mimic Vercel.
Also added is a Vercel-like Menu

![](https://user-images.githubusercontent.com/26389321/99961241-0b9cd200-2d5c-11eb-9ae5-b8a668853ea9.png)
![](https://user-images.githubusercontent.com/26389321/99961369-4dc61380-2d5c-11eb-9530-97c882adf7f0.png)

### Added

- Vercel-like menu to NavBar2
- disabled button style on Login page
- geist-styles.css
  - import in gatsby-browser & gatsby-ssr
- `gatsby-plugin-material-ui`
  - fix SSR css issues like with `<Box mr={1} mb={1} display={"inline-block"}>`
- `Geist.tsx`
  - a styled-components global stylesheet copy of Vercel's css vars

### Removed

- 'a' transition css
- unused `MobileMenu` component

### Refactored

- /pages/app.tsx - vercel mimic
- NavBar, Header, Layout (old) - improve types
- ThemeSlider style to use some Geist css vars
- `<a>` styles
- NavBar2
  - add dope Menu!!!
- Layout 1 & 2
  - maxWidth: `var(--geist-page-width-with-margin)`
  - paddingX: `var(--geist-gap)`

### Todos

- extract new menu out of NavBar2.tsx

## [v0.18.2] - 2020-11-20

### Removed

- `disqus` & Discussion component

## [v0.18.1] - 2020-11-19

### Clean Up

- comment out footer links 4230c71
- drastic type improvements for tags.tsx 08d2131
- Improve SEO types 7b998a3
- tags.tsx improve types 1c3f0eb
- remove `apollo-boost`, `apollo-link-context`, `apollo-link-ws` 930237d
- delete ButtonAndDrawer b93252a
- refix invariant ApolloClient error on SSR 7f9f28f
- move prismjs css imports to browser.js ba902c7

## [v0.18.0] - 2020-11-19

### Notes

To make the Facebook <> Cognito login _smooth_, I needed **2 lambda triggers**, and to **catch Cognito errors, client side** ( see `src/pages/redirect_uri.tsx` ).

**Pre Sign Up**

- If the request is from **Facebook**
  - auto create **Native** user
    - auto verify email = TRUE
    - auto confirm user = TRUE
  - link the pending **Facebook** user
  - return the **Facebook** event to Cognito
  - expect Cognito to return an error: `Already found an entry for username ___`
  - 👍 catch the error client side, and attempt to login with **Facebook** again
    - 👍 when the user authenticates with **Facebook**, tokens for the **Native** user will be returned
    - ❌ and the **Native** user's "email verified" will be auto set to FALSE
      - as a result, password reset codes won't be emailed. Fix below

**Pre Token Generation**

- If the request is from **Facebook**
  - `adminUpdateUserAttributes`
    - ```ts
      params = {
        // ...
        UserAttributes: [
          {
            Name: "email_verified",
            Value: "true",
          },
        ],
      }
      ```
  - This re-enables password reset codes to be sent for the **Native** user

### Added

- `/app/` client-only route
  - `/app/profile`
  - `/app/
  - Followed: https://www.gatsbyjs.com/docs/client-only-routes-and-user-authentication/
- LoadingPage component

### Changed

- LoadingIndicator style
- numerous type annotation fix and improvements
- return extra fields from `useVerifyTokenSet`
- Simplified link/`<a>` styles

### Todos

- Add GOOGLE federated login w/ Cognito
- Use new FS Route API
  - https://www.gatsbyjs.com/blog/fs-route-api/

## [v0.17.1] - 2020-11-15

### Added

- `/privacy` page
- `/terms` page

### Changed

- Bio component
- Footer component now has links to /privacy and /terms

## [v0.17.0] - 2020-11-15

### Added

- `/app/*` client-only routes
- `/redirect_uri` page
- isBrowser util
- FacebookIcon
- `useVerifyTokenSet` util/hook
  - This has confusing logic; Needs clean up
- env var
  - GATSBY_FACEBOOK_LOGIN_LINK

### Refactored

- apollo react-hooks -> client
- update Field with Formik.ErrorMessage

## [v0.16.1] - TODO

### TODO

## [v0.16.0] - TODO

### TODO

## [v0.15.21] - TODO

### TODO

## [v0.15.20] - TODO

### TODO

## [v0.15.19] - TODO

### TODO

## [v0.15.18] - 2020-08-01

### TODO

## [v0.15.17] - 2020-07-30

### TODO

## [v0.15.16] - 2020-07-26

### Added

- Rework UI for `<Posts.V2>`
- Fix Lodash security issue
- Add keypress listeners to change **Post** version
  - Attached via `<NavBar2>`
  - <kbd>Ctrl</kbd> + <kbd>1</kbd> selects V1
  - <kbd>Ctrl</kbd> + <kbd>2</kbd> selects V2
- Add `/src/icons` directory
  - Add `QuestionCircle` (https://vercel.com/design/icons)

### Changed

Old:
![image](https://user-images.githubusercontent.com/26389321/88480118-0fd9ef80-cf22-11ea-9a18-3004ac2df095.png)

New:
![image](https://user-images.githubusercontent.com/26389321/88480049-a528b400-cf21-11ea-9ca0-f0b351902e95.png)

## [v0.15.15] - TODO

## [v0.15.14] - TODO

## [v0.15.13] - TODO

## [v0.15.12] - TODO

## [v0.15.11] - TODO

## [v0.15.10] - TODO

## [v0.15.9] - TODO

## [v0.15.8] - TODO

## [v0.15.7] - TODO

## [v0.15.6] - TODO

## [v0.15.5] - TODO

## [v0.15.4] - TODO

## [v0.15.3] - TODO

## [v0.15.2] -

### Added

[v0.23.4]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.23.3...v0.23.4
[v0.23.3]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.23.2...v0.23.3
[v0.23.2]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.23.1...v0.23.2
[v0.23.1]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.23.0...v0.23.1
[v0.23.0]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.22.1...v0.23.0
[v0.22.1]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.22.0...v0.22.1
[v0.22.0]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.21.2...v0.22.0
[v0.21.2]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.21.1...v0.21.2
[v0.21.1]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.21.0...v0.21.1
[v0.21.0]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.20.3...v0.21.0
[v0.20.3]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.20.2...v0.20.3
[v0.20.2]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.20.1...v0.20.2
[v0.20.1]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.20.0...v0.20.1
[v0.20.0]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.19.5...v0.20.0
[v0.19.5]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.19.4...v0.19.5
[v0.19.4]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.19.3...v0.19.4
[v0.19.3]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.19.2...v0.19.3
[v0.19.2]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.19.1...v0.19.2
[v0.19.1]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.19.0...v0.19.1
[v0.19.0]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.18.3...v0.19.0
[v0.18.3]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.18.2...v0.18.3
[v0.18.2]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.18.1...v0.18.2
[v0.18.1]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.18.0...v0.18.1
[v0.18.0]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.17.1...v0.18.0
[v0.17.1]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.17.0...v0.17.1
[v0.17.0]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.16.1...v0.17.0
[v0.16.1]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.16.0...v0.16.1
[v0.16.0]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.21...v0.16.0
[v0.15.21]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.20...v0.15.21
[v0.15.20]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.19...v0.15.20
[v0.15.19]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.18...v0.15.19
[v0.15.18]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.17...v0.15.18
[v0.15.17]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.16...v0.15.17
[v0.15.16]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.15...v0.15.16
[v0.15.15]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.14...v0.15.15
[v0.15.14]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.13...v0.15.14
[v0.15.13]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.12...v0.15.13
[v0.15.12]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.11...v0.15.12
[v0.15.11]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.10...v0.15.11
[v0.15.10]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.9...v0.15.10
[v0.15.9]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.8...v0.15.9
[v0.15.8]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.7...v0.15.8
[v0.15.7]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.6...v0.15.7
[v0.15.6]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.5...v0.15.6
[v0.15.5]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.4...v0.15.5
[v0.15.4]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.3...v0.15.4
[v0.15.3]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.2...v0.15.3
[v0.15.2]: https://github.com/thiskevinwang/coffee-code-climb/compare/v0.15.1...v0.15.2

###### TODO: Make tag links for these.

edc9f30 (tag: v0.15.1) extract 'useOptimisticClaps' (#141)
09fd42e (tag: v0.15.0) Merge pull request #138 from thiskevinwang/claps
72e5863 (tag: v0.14.11) ads.txt (#136)
4e0efe7 (tag: v0.14.10) Housekeeping (#134)
a950079 (tag: v0.14.9) Merge pull request #125 from thiskevinwang/Jan-5-blog-post-postgres-docker
f94f259 (tag: v0.14.8) Merge pull request #124 from thiskevinwang/exif
9181386 (tag: v0.14.7) Merge pull request #122 from thiskevinwang/Colors
010d2b2 (tag: v0.14.6) 0.14.6
7d1a8ef (tag: v0.14.5) 0.14.5
dcad28a (tag: 0.14.4) Merge pull request #119 from thiskevinwang/signup
8f5da92 (tag: v0.14.4, origin/signup) 0.14.4
84466a2 (tag: v0.14.3) 0.14.3
e9533eb (tag: v0.7.5) 0.7.5
545c86f (tag: 0.14.3) Comment box (#118)
fbcbd89 (tag: 0.14.2) Merge pull request #117 from thiskevinwang/continue-ssr-data-animations
f45fd12 (tag: 0.14.1) Merge pull request #116 from thiskevinwang/RDS-stuff
5108d39 (tag: 0.14.0) Supercool Animated "Grid" (#114)
49566b5 (tag: 0.13.0) Merge pull request #110 from thiskevinwang/modal-fixes
8ddd67b (tag: 0.12.0) Merge pull request #99 from thiskevinwang/optional-chaining
bc2724e (tag: 0.11.1) Merge pull request #97 from thiskevinwang/docker-blog
c4a9278 (tag: v0.8.0) v0.8.0
e518f8f (tag: 0.11.0) Merge pull request #94 from thiskevinwang/apollo-route-update
60908cd (tag: 0.10.4) Merge pull request #91 from thiskevinwang/3d
f51801d (tag: 0.10.3) Merge pull request #90 from thiskevinwang/quick-updates
42f0f5a (tag: 0.10.2) Merge pull request #88 from thiskevinwang/use-gesture
ceb3ae3 (tag: 0.10.1) Merge pull request #87 from thiskevinwang/project-cleanup
1b8b40d (tag: 0.10.0) Merge pull request #86 from thiskevinwang/intersection-observer-stuff
0c4f905 (tag: 0.9.2) Merge pull request #85 from thiskevinwang/ssr-styled-components
391774e (tag: 0.9.1) Merge pull request #84 from thiskevinwang/refactor
67773c0 (tag: 0.9.0) Merge pull request #79 from thiskevinwang/ios-like-styling
cf1061f (tag: 0.8.2) Merge pull request #77 from thiskevinwang/misc
55668d0 (tag: 0.8.1) Merge pull request #76 from thiskevinwang/misc
3875783 (tag: 0.8.0) Merge pull request #71 from thiskevinwang/buttonAndDrawer
fe796af (tag: 0.7.5) Merge pull request #73 from thiskevinwang/re-add-disqus
5d00626 (tag: 0.7.4) 0.7.4
74d10c1 (tag: 0.7.3) v0.7.3
f9e7aaf (tag: 0.7.2) Merge pull request #63 from thiskevinwang/attack-animation-simulator
3e2edb0 (tag: 0.7.1) Merge pull request #62 from thiskevinwang/prevent-rerenders
1ddfe78 (tag: 0.7.0) Merge pull request #60 from thiskevinwang/update-styles
61a7c32 (tag: 0.6.1) Merge pull request #59 from thiskevinwang/remove-disqus-comments
ea74ca1 (tag: 0.6.0) Merge pull request #58 from thiskevinwang/update-mobile-drawer
a5d896d (tag: 0.5.1) Merge pull request #56 from thiskevinwang/fix-console-errors
6b8286b (tag: 0.5.0) Merge pull request #50 from thiskevinwang/codeclimate-errors
24e5bbb (tag: 0.4.1) Merge pull request #47 from thiskevinwang/convert-everything-to-typescript
585ccfa (tag: 0.4.0) Merge pull request #45 from thiskevinwang/convert-everything-to-typescript
d94f947 (tag: 0.3.2) Merge pull request #44 from thiskevinwang/first-letter-tags
5dcde1f (tag: 0.3.1) Merge pull request #39 from thiskevinwang/emojis-and-padding
4d9e643 (tag: 0.3.0) Merge pull request #36 from thiskevinwang/featured-post-ui
1c6c433 (tag: 0.2.0) Merge pull request #35 from thiskevinwang/post-images
fa981f5 (tag: 0.1.0, tag: 0.0.1) Merge pull request #32 from thiskevinwang/climbing-season-begins