Skip to content

Commit

Permalink
chore: sync develop and master for redirect logic and some minor styl…
Browse files Browse the repository at this point in the history
…e changes (#473)

* fix(deps): update dependency @aws-amplify/auth to v4 (#352)

Co-authored-by: Renovate Bot <[email protected]>

* Feature: Added Dark theme (#365)

* Theme provider to Syllabus & context to containers

* Add context on components in Syllabus which may require fix for dark mode

* feat: replace @reach/router to react-router v6

* feat: update header for all apps

* fix: reinstall react-router-dom v6 and history after rebase

* feat: add new themes

* fix: lock files

* feat: install TailwindCSS on Campus

* feat: install TailwindCSS on Syllabus

* feat: change theme-toggle color according to current theme

* fix: change locations of tailwind import; remove unused log

* feat: dark theme on Timetable

* Feat: Added new sidebar icons from material ui icons

* Feat: Separated icons into different component

* fix: added package json and pnpm lock updates

* feat: pass isDark property to styled components

* feat: dark theme on Syllabus (CourseItem not yet)

* fix: wrap ThemeProvider on Nav; use new theme colors

* fix: use className instead of passing theme as props

* feat: dark theme on CourseInfo (not completed)

* fix: Made theme types exportable

* fix: created sidebar wrapper locally instead of bit

* fix: Fixed styling of icon group button

* feat: added user profile icon

* feat: Added dark mode styling to other links

* fix: moved browser router wrapper outside to fix navigation

* fix: used const instead of let for navigation hook

* fix: fixed import order

* feat: CourseInfo dark mode

* feat: Made title logo svg into a component

* fix: made title logo text colour change when theme toggle

* fix: fixed extra stylings when dark mode

* fix: updated package versions and pnpm lock file

* feat: update loading-spinner & solve background color flicker while loading page in dark mode

* feat: added dark mode styling to about us pages

* feat: added dark mode styling to extra pages

* feat: dark theme to mobile bottom nav

* feat: update header & loading-spinner & body tag background color

* feat: added dark mode background

* fix: fixed title logo on sidebar not changing colours when switching modes

* fix: added tab colours when dark mode

* fix: added dark mode colours to partner page text

* feat: dark mode for Labs

* fix: related courses width

* feat: update spinner in Syllabus; dark mode for Campus

* fix: timetable course item scrollable space height

* feat: make timetable course item darker in dark mode

* feat: install tailwind in feeds (not used yet)

* feat: redirecting page styling

* feat: update sign in modal

* feat: updated header component and pnpm lock file accordingly

* fix: updated colors and header dependencies

* fix: eslint fixes for campus folder

* feat: added dark mode styling to campus folder

* fix: eslint fixes in syllabus folder

* fix: updated dark mode styling

* fix: updated dark mode syllabus

* fix: updated dark mode styling root folder

* fix: syllabus border & step arrow color

* fix: fixed styling for social media icons in partners

* fix: removed unused imports

* fix: Or-button dark mode color

* fix: remove FilterWarningsPlugin

* fix: update lock files

* fix: remove -y option

* fix: update lock files

* fix: update @aws-amplify/auth in syllabus

* fix: update loading spinner in Feeds

* fix: add theme prop to LoadingSpinner in Feeds

Co-authored-by: YHhaoareyou <[email protected]>

* fix: clear search keywords when onclick related courses

* Debug: mobile dark mode debug (#373)

* feat: dark mode & new messages on welcome modal

* fix: dark mode on sign in modal & user login icon

* chore(deps): update dependency eslint-plugin-react to v7.29.4 (#361)

Co-authored-by: Renovate Bot <[email protected]>

* chore(deps): update dependency ts-loader to v9.2.8 (#359)

Co-authored-by: Renovate Bot <[email protected]>

* feat: remove unused dependencies (#377)

* Feature/darktheme colors (#378)

* feat: added quarterColors for both light and dark mode

* feat: Added google analytics to theme changes

* fix: fixed user profile icon to make it consistent

* fix: code refactoring

* fix: code refactoring in syllabus

* feat: added dark semantic colors

* fix: added colors based on numbers too

* fix: added a todo comment

* fix: fix semantic text colors dark mode

* feat: update quarter switch colors & icons

* feat: update timetable course items and color selector with new theme colors

Co-authored-by: Nicholas Narmada <[email protected]>

* Feature: Timetable dark theme (#379)

* feat: Dark mode for pro tips and colors selector popup in Timetable

* feat: update theme colors dependency for all apps

* feat: add the hovering effect to the member cards (#381)

* feat: update the hovering effect for member cards

* fix: remove unused libraries; fix html background color in dark mode; disable card's hyperlink

* fix: makes the code shorter and neater

* fix: syllabus pnpm lock file

* fix: syllabus pnpm lock file

Co-authored-by: YHhaoareyou <[email protected]>

* Migrate from Webpack to Vite (#382)

* feat: vite tested by career folder

* feat: replace systemjs import with dynamic import to import vite project

* feat: ignore dynamic import problem caused by webpack

* feat: Migrate Campus from Webpack to Vite

* fix: restore career

* feat: register vite app campus by single-spa-layout

* feat: migrate Syllabus to vite (error unsolved)

* fix: fix lockfile

* fix: solve "exportStar not a function", "undefined global" and use Vite envvar

* feat: migrate syllabus to vite (done)

* remove webpack from all apps except root

* feat: migrate root to vite

* feat: remove webpack related scripts & solve import-map not supported problem in Safari

* feat: import static assets; solve errors of custom props passed to dom

* fix: run eslint fix

* fix: build script & config

* feat: build config & debug global var

* fix: output asset files path

* feat: disable css code split in build

* fix: run eslint fix

* feat: preload css from mf apps to root; replace react-s-alert with react-toastify

* feat: configure public path & env var for each app

* fix: run eslint fix

* feat: service-worker

* fix: eslint fix

* update lock files

* fix: missing package

* fix: externalize styles from other mf app

* fix: campus room badge styles

Co-authored-by: AustinZhu <[email protected]>

* fix: env without using dotenv explicitly (#385)

* fix: packages version

* fix: change env var name

* fix: remove systemjs package; add peer dependencies

* fix: feeds domain on staging/prod

* Feature: About Us page link from Home page & split Home from Root-config (#387)

* fix: remove custom sw

* feat: add link to aboutus page from home

* fix: eslint

* Feature/fix card padding (#388)

* fix: fixing the responsive design for members card

* fix: fixing the responsive design for members card

* fix: font color, repeated className, figure tag

* fix: install missing dependency: @aws-amplify/core

* fix: remove course function

* feat: alert translation

* fix: eslint

* feat: add workbox runtimeCaching config

* Fix service worker to enable it to replace old one (#389)

* fix: add cleanupOutdatedCaches option

* use custom sw & force update

* skipWaiting and claim before cleanupOutdatedCaches

* add ts files to NetworkFirst cache

* remove ts from cache

* register sw on index.html

* change sw from ts to js

* test updates to trigger build

* registerSW in index.html

* remove unused code and comment of registering sw

* update files to trigger build

* feat: add a profile card component; add hover & click effect; add a closing tab on cards (#390)

* feat: add a profile card component;
add hover & click effect;
add closing tab on cards

* fix: rename profile card & prop; type for useState

* fix: syllabus minor styling issues

* Update README.md

* Migrate from Webpack to Vite (#386)

* fix(deps): update dependency @aws-amplify/auth to v4 (#352)

Co-authored-by: Renovate Bot <[email protected]>

* Feature: Added Dark theme (#365)

* Theme provider to Syllabus & context to containers

* Add context on components in Syllabus which may require fix for dark mode

* feat: replace @reach/router to react-router v6

* feat: update header for all apps

* fix: reinstall react-router-dom v6 and history after rebase

* feat: add new themes

* fix: lock files

* feat: install TailwindCSS on Campus

* feat: install TailwindCSS on Syllabus

* feat: change theme-toggle color according to current theme

* fix: change locations of tailwind import; remove unused log

* feat: dark theme on Timetable

* Feat: Added new sidebar icons from material ui icons

* Feat: Separated icons into different component

* fix: added package json and pnpm lock updates

* feat: pass isDark property to styled components

* feat: dark theme on Syllabus (CourseItem not yet)

* fix: wrap ThemeProvider on Nav; use new theme colors

* fix: use className instead of passing theme as props

* feat: dark theme on CourseInfo (not completed)

* fix: Made theme types exportable

* fix: created sidebar wrapper locally instead of bit

* fix: Fixed styling of icon group button

* feat: added user profile icon

* feat: Added dark mode styling to other links

* fix: moved browser router wrapper outside to fix navigation

* fix: used const instead of let for navigation hook

* fix: fixed import order

* feat: CourseInfo dark mode

* feat: Made title logo svg into a component

* fix: made title logo text colour change when theme toggle

* fix: fixed extra stylings when dark mode

* fix: updated package versions and pnpm lock file

* feat: update loading-spinner & solve background color flicker while loading page in dark mode

* feat: added dark mode styling to about us pages

* feat: added dark mode styling to extra pages

* feat: dark theme to mobile bottom nav

* feat: update header & loading-spinner & body tag background color

* feat: added dark mode background

* fix: fixed title logo on sidebar not changing colours when switching modes

* fix: added tab colours when dark mode

* fix: added dark mode colours to partner page text

* feat: dark mode for Labs

* fix: related courses width

* feat: update spinner in Syllabus; dark mode for Campus

* fix: timetable course item scrollable space height

* feat: make timetable course item darker in dark mode

* feat: install tailwind in feeds (not used yet)

* feat: redirecting page styling

* feat: update sign in modal

* feat: updated header component and pnpm lock file accordingly

* fix: updated colors and header dependencies

* fix: eslint fixes for campus folder

* feat: added dark mode styling to campus folder

* fix: eslint fixes in syllabus folder

* fix: updated dark mode styling

* fix: updated dark mode syllabus

* fix: updated dark mode styling root folder

* fix: syllabus border & step arrow color

* fix: fixed styling for social media icons in partners

* fix: removed unused imports

* fix: Or-button dark mode color

* fix: remove FilterWarningsPlugin

* fix: update lock files

* fix: remove -y option

* fix: update lock files

* fix: update @aws-amplify/auth in syllabus

* fix: update loading spinner in Feeds

* fix: add theme prop to LoadingSpinner in Feeds

Co-authored-by: YHhaoareyou <[email protected]>

* fix: clear search keywords when onclick related courses

* Debug: mobile dark mode debug (#373)

* feat: dark mode & new messages on welcome modal

* fix: dark mode on sign in modal & user login icon

* chore(deps): update dependency eslint-plugin-react to v7.29.4 (#361)

Co-authored-by: Renovate Bot <[email protected]>

* chore(deps): update dependency ts-loader to v9.2.8 (#359)

Co-authored-by: Renovate Bot <[email protected]>

* feat: remove unused dependencies (#377)

* Feature/darktheme colors (#378)

* feat: added quarterColors for both light and dark mode

* feat: Added google analytics to theme changes

* fix: fixed user profile icon to make it consistent

* fix: code refactoring

* fix: code refactoring in syllabus

* feat: added dark semantic colors

* fix: added colors based on numbers too

* fix: added a todo comment

* fix: fix semantic text colors dark mode

* feat: update quarter switch colors & icons

* feat: update timetable course items and color selector with new theme colors

Co-authored-by: Nicholas Narmada <[email protected]>

* Feature: Timetable dark theme (#379)

* feat: Dark mode for pro tips and colors selector popup in Timetable

* feat: update theme colors dependency for all apps

* feat: add the hovering effect to the member cards (#381)

* feat: update the hovering effect for member cards

* fix: remove unused libraries; fix html background color in dark mode; disable card's hyperlink

* fix: makes the code shorter and neater

* fix: syllabus pnpm lock file

* fix: syllabus pnpm lock file

Co-authored-by: YHhaoareyou <[email protected]>

* Migrate from Webpack to Vite (#382)

* feat: vite tested by career folder

* feat: replace systemjs import with dynamic import to import vite project

* feat: ignore dynamic import problem caused by webpack

* feat: Migrate Campus from Webpack to Vite

* fix: restore career

* feat: register vite app campus by single-spa-layout

* feat: migrate Syllabus to vite (error unsolved)

* fix: fix lockfile

* fix: solve "exportStar not a function", "undefined global" and use Vite envvar

* feat: migrate syllabus to vite (done)

* remove webpack from all apps except root

* feat: migrate root to vite

* feat: remove webpack related scripts & solve import-map not supported problem in Safari

* feat: import static assets; solve errors of custom props passed to dom

* fix: run eslint fix

* fix: build script & config

* feat: build config & debug global var

* fix: output asset files path

* feat: disable css code split in build

* fix: run eslint fix

* feat: preload css from mf apps to root; replace react-s-alert with react-toastify

* feat: configure public path & env var for each app

* fix: run eslint fix

* feat: service-worker

* fix: eslint fix

* update lock files

* fix: missing package

* fix: externalize styles from other mf app

* fix: campus room badge styles

Co-authored-by: AustinZhu <[email protected]>

* fix: env without using dotenv explicitly (#385)

* fix: packages version

* fix: change env var name

* fix: remove systemjs package; add peer dependencies

* fix: feeds domain on staging/prod

* Feature: About Us page link from Home page & split Home from Root-config (#387)

* fix: remove custom sw

* feat: add link to aboutus page from home

* fix: eslint

* Feature/fix card padding (#388)

* fix: fixing the responsive design for members card

* fix: fixing the responsive design for members card

* fix: font color, repeated className, figure tag

* fix: install missing dependency: @aws-amplify/core

* fix: remove course function

* feat: alert translation

* fix: eslint

* feat: add workbox runtimeCaching config

* Fix service worker to enable it to replace old one (#389)

* fix: add cleanupOutdatedCaches option

* use custom sw & force update

* skipWaiting and claim before cleanupOutdatedCaches

* add ts files to NetworkFirst cache

* remove ts from cache

* register sw on index.html

* change sw from ts to js

* test updates to trigger build

* registerSW in index.html

* remove unused code and comment of registering sw

* update files to trigger build

* feat: add a profile card component; add hover & click effect; add a closing tab on cards (#390)

* feat: add a profile card component;
add hover & click effect;
add closing tab on cards

* fix: rename profile card & prop; type for useState

* fix: syllabus minor styling issues

* Update README.md

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: Nicholas Narmada <[email protected]>
Co-authored-by: Nicholas Narmada <[email protected]>
Co-authored-by: Xinyue Tao <[email protected]>
Co-authored-by: AustinZhu <[email protected]>

* add script-src-elem to Content Security Policy (#391)

* Hotfix (#392)

* add script-src-elem to Content Security Policy

* fix csp

* Hotfix (#393)

* add script-src-elem to Content Security Policy

* fix csp

* add blob:https: to csp

* fix blob in csp

* fix: remove csp

* fix: remove all webpack-related packages & setting

* Allow all in CSP

* Fix: preload style, csp allow all, refactor index html & env var (#404)

* fix style prelload link

* refactor index.html & add env variables

* remove slash from the end of base path env var

* import other mf's css files as external

* run eslint fix

* run eslint fix

* Update README.md (#397)

Github -> GitHub

* chore(deps): update dependency esbuild to v0.14.43 (#384)

Co-authored-by: Renovate Bot <[email protected]>

* chore(deps): update dependencies

* chore(deps): update dependencies

* chore(deps): update dependencies

* fix: preload & enable styles from other mf app

* fix: packages version (fix React to v17)

* Language filter for Feeds (#409)

* filter feeds by language

* feat: styling lang filter button

* feat: Back button to Feeds list page

* Remove using @apply in css file due to amp style problem

* feat: added turbo-repo woooo (#420)

* update feeds

* update feeds

* refactor: refactored project structure

* feat: added turborepo

* feat: eslint custom config dependency

* fix: fix lint script

* fix: removed self dependent dependencies

* chore: pnpm lock updates

* fix: remove dont purge tailwind from script

* feat: add turbo scripts to monorepo

* fix: fixed folder paths for github actions

* fix: fixed campus pnpm-lock file

* fix: updated pnpm lock again

* fix: updated types for feed info

* fix: feeds submodule & root env & campus type mismatch

Co-authored-by: YHhaoareyou <[email protected]>

* feat: adding web hooks for forums

* feat: updating meet our team page (#426)

* feat: editing meet our team page

* feat: adding michael to the MeetOurMembers page

* feat: edited my position

* feat: changing Jason's role to cheerleader

* fix: downgrade pnpm version for test

* feat: adding gunjan and aditya to the team

* fix: fixing aditya image

* feat: adding pam to the team

* fix:fixing pnpm lock issues

---------

Co-authored-by: YHhaoareyou <[email protected]>

* Export Bit components to turborepo packages (#428)

* feat: created ui package

* feat: added tailwind and prettier

* chore: file linting

* refactor: removed unnecessary files

* refactor: configured build

* feature: add storybook

* feat: import all bit components

* refactor: remove unused stories

* refactor: updated language menu to newest mui

* refactor: refactored media func

* refactor: use headlessui for modal

* refactor: refactor imports and exports

* chore: pnpm build script

* chore: added packages

* chore: update package json and lock files

* refactor: re-added Modal component

* refactor: changed import paths internal ui package

* refactor: added colors.json to be importable

* refactor: changed import path

* refactor: updated shared eslint and prettier

* chore: reformatted files

* refactor: changed type of media func

* refactor: removed unused assets

* refactor: refactored media functions

* refactor: fixed import path

* chore: updated vite to latest

* chore: updated single-spa and removed unused vite plugin

* fix: fixed pnpm lock

* fix: removed react-refresh

* fix: overrided esbuild version

* fix: fixed pnpm lock

* refactor: changed loading spinner to func

* refactor: changed prettier to cjs file

* refactor: updated mui

* fix: fixed packages

* fix: test version down jpg loader

* fix: fixed window and document in theme context

* fix: test remove theme context file

* fix: fix error document

* test commit

* fix: use client in component

* fix: under reconstruction feeds

* fix: next output export

---------

Co-authored-by: Nicholas Narmada <[email protected]>

* Feature: Remove bit from npmrc (#431)

* fix: remove bit details from npmrc

* fix: remove bit portion of readme

* fix: fixing tailwind:build from tailwind to tailwindcss

* feat: reorganizing meet our teams list

* feat: adding alfonso lien and shiori

* chore: ah comeon

* chore: what in the hell is a JPG and a jpg

* chore: oh Jason focus comeon why are you doing stupid stuff mistaking jpg with png

* feat: adding forum into develop (#446)

* feat: create single-spa app-parcel for Forum

* Add explanation for adding new app-parcel in WasedaTime

* Comment out routing for Career

* Initialize components for Forum

* feat: install tailwind in Forum

* Add required utilities to Forum

* Add Forum icon to navbar

* feature/forum-basic-styling (#415)

* feat: added basic styling + dummy data for forum incl. board, comments and comment form

* fix: arrangement between each section in Forum

* fix: code style by eslint

Co-authored-by: YHhaoareyou <[email protected]>

* Feature/forum-basic-routing (#416)

* feat: added basic styling + dummy data for forum incl. board, comments and comment form

* pulled forum-basic into this branch

* feat: filter posts by boardid, boardmenu routing

* feat: "basic routing for posts + boards"

* Run pnpm fix

* fix: available boards

Co-authored-by: YHhaoareyou <[email protected]>

* Recoil installation and defining global states (#417)

* created tag modal component

* added recoil in root.components.tsx

* feat: define recoil state

Co-authored-by: Kyoungjun Han <[email protected]>

* Feature/forum-create-thread-basic (#418)

* feat: conditional create thread text area basic

* feat: added tags + group buttons w/ basic toggle

* feat: added submit btn (not functional)

* changed default state of expanded thread input

* feat: menuitems json, createthread styling

* added number type for boardindex function

* Run pnpm fix

* Define boards & tags; change structure of dummy threads & comments

* Group filter for Forum (#419)

* feature: group filter styling

* Update groups

* feat: Toggle global states for groups when clicking on items in group menu

* fix group items structure

* feature: filtering function

* fix: move filter functions to another file

* init School filter form and add scholl icons

* feat: switch open status of school filter modal

* feat: tab item title, normal and active style

* feat: toggle selected group by school filter

* feat: moved forum folder to apps

* User auth for Forum (#421)

* feat: User login & verify auth when opening thread form and creating new thread

* chore: add todo message for implementing submitting new thread API

* feat: Add auth for comment form

* feat: value and onChange func for new thread form

* Customize Header for Forum (will replace Header component in other apps)

* fix: default host of each microfrontend

* added recoil in root.components.tsx

* error report to Hao

* fix: modal not showing due to wrong classname and attributes

* update for jan 5 2023

* sorry it took so long

* debug: recover tags modal display after adopting turbo

* feat: set header input form as tag modal button

* fix: removed bit from forum

* fix: updated eslint config

* choreL updated package json

* fix: remove bit details from npmrc

* fix: remove bit token form npmrc

* Fix errors when importing common packages (#432)

* fix: temporarily comment out error codes in Feeds

* fix: update esbuild and fix tailwind build command

* fix: temporarily change the target of ReactModal.setAppElement

* fix: commented out translation & navigation function and fix typo of color variables

* fix: language switch icon size

* fix: move i18n config from packages folder to each microfrontend

* fix: recover sign in modal

* feat: create single-spa app-parcel for Forum

* Add explanation for adding new app-parcel in WasedaTime

* Comment out routing for Career

* Initialize components for Forum

* feat: install tailwind in Forum

* Add required utilities to Forum

* Add Forum icon to navbar

* feature/forum-basic-styling (#415)

* feat: added basic styling + dummy data for forum incl. board, comments and comment form

* fix: arrangement between each section in Forum

* fix: code style by eslint

Co-authored-by: YHhaoareyou <[email protected]>

* Feature/forum-basic-routing (#416)

* feat: added basic styling + dummy data for forum incl. board, comments and comment form

* pulled forum-basic into this branch

* feat: filter posts by boardid, boardmenu routing

* feat: "basic routing for posts + boards"

* Run pnpm fix

* fix: available boards

Co-authored-by: YHhaoareyou <[email protected]>

* Recoil installation and defining global states (#417)

* created tag modal component

* added recoil in root.components.tsx

* feat: define recoil state

Co-authored-by: Kyoungjun Han <[email protected]>

* Feature/forum-create-thread-basic (#418)

* feat: conditional create thread text area basic

* feat: added tags + group buttons w/ basic toggle

* feat: added submit btn (not functional)

* changed default state of expanded thread input

* feat: menuitems json, createthread styling

* added number type for boardindex function

* Run pnpm fix

* Define boards & tags; change structure of dummy threads & comments

* Group filter for Forum (#419)

* feature: group filter styling

* Update groups

* feat: Toggle global states for groups when clicking on items in group menu

* fix group items structure

* feature: filtering function

* fix: move filter functions to another file

* init School filter form and add scholl icons

* feat: switch open status of school filter modal

* feat: tab item title, normal and active style

* feat: toggle selected group by school filter

* feat: moved forum folder to apps

* User auth for Forum (#421)

* feat: User login & verify auth when opening thread form and creating new thread

* chore: add todo message for implementing submitting new thread API

* feat: Add auth for comment form

* feat: value and onChange func for new thread form

* Customize Header for Forum (will replace Header component in other apps)

* fix: default host of each microfrontend

* added recoil in root.components.tsx

* error report to Hao

* fix: modal not showing due to wrong classname and attributes

* update for jan 5 2023

* sorry it took so long

* debug: recover tags modal display after adopting turbo

* feat: set header input form as tag modal button

* fix: removed bit from forum

* fix: updated eslint config

* choreL updated package json

* fix: remove bit token form npmrc

* fix: i18n config and signInModal in Forum

* fix: image config in Feeds

* Feature/forum get post (#445)

* feat: create single-spa app-parcel for Forum

* Add explanation for adding new app-parcel in WasedaTime

* Comment out routing for Career

* Initialize components for Forum

* feat: install tailwind in Forum

* Add required utilities to Forum

* Add Forum icon to navbar

* feature/forum-basic-styling (#415)

* feat: added basic styling + dummy data for forum incl. board, comments and comment form

* fix: arrangement between each section in Forum

* fix: code style by eslint

Co-authored-by: YHhaoareyou <[email protected]>

* Feature/forum-basic-routing (#416)

* feat: added basic styling + dummy data for forum incl. board, comments and comment form

* pulled forum-basic into this branch

* feat: filter posts by boardid, boardmenu routing

* feat: "basic routing for posts + boards"

* Run pnpm fix

* fix: available boards

Co-authored-by: YHhaoareyou <[email protected]>

* Recoil installation and defining global states (#417)

* created tag modal component

* added recoil in root.components.tsx

* feat: define recoil state

Co-authored-by: Kyoungjun Han <[email protected]>

* Feature/forum-create-thread-basic (#418)

* feat: conditional create thread text area basic

* feat: added tags + group buttons w/ basic toggle

* feat: added submit btn (not functional)

* changed default state of expanded thread input

* feat: menuitems json, createthread styling

* added number type for boardindex function

* Run pnpm fix

* Define boards & tags; change structure of dummy threads & comments

* Group filter for Forum (#419)

* feature: group filter styling

* Update groups

* feat: Toggle global states for groups when clicking on items in group menu

* fix group items structure

* feature: filtering function

* fix: move filter functions to another file

* init School filter form and add scholl icons

* feat: switch open status of school filter modal

* feat: tab item title, normal and active style

* feat: toggle selected group by school filter

* feat: moved forum folder to apps

* User auth for Forum (#421)

* feat: User login & verify auth when opening thread form and creating new thread

* chore: add todo message for implementing submitting new thread API

* feat: Add auth for comment form

* feat: value and onChange func for new thread form

* Customize Header for Forum (will replace Header component in other apps)

* fix: default host of each microfrontend

* added recoil in root.components.tsx

* error report to Hao

* fix: modal not showing due to wrong classname and attributes

* update for jan 5 2023

* sorry it took so long

* debug: recover tags modal display after adopting turbo

* feat: set header input form as tag modal button

* fix: removed bit from forum

* fix: updated eslint config

* choreL updated package json

* fix: remove bit details from npmrc

* fix: remove bit token form npmrc

* feat: restarting branch

* feat: adding changes to new branch

* feat: testing

* feat: adding dependency localforage

* chores: small edits

* feat: finishing migrate from branch to branch

* feat: deleting two view sections.

* feat: adding tags to post model

* fix: fixed tag posting

* feat: creating school choosing dropdown

* chores: small adjustments

* feat: updating dropdown will need to change it to something else

* Feature/forum update delete post (#444)

* feat: add edit and delete button & call delete api

* feat: confirm delete thread modal

* feat: thread edit modal (form not yet)

* feat: edit thread form completed

* fix: fixing out API

* feat: figuring shit out

* fix: undefined colors variable

* feat: adding some actions too

* Feature/new layout (#441)

* feat: new layout

* feat: whole new layout will merge to parent branch to get inifinte scroll

* fix: fixing actions to compatible version

* feat: infinite scroll to load more threads (#442)

Co-authored-by: YHhaoareyou <[email protected]>

* feat: forum restructuring  (#443)

* feat: initiating new branch for hastags

* feat: working on forum homepage now can call all data

* feat: forum home func

* yo

* chorse: getting rid of stuff

* feat: major changes added some refresh functionalities

---------

Co-authored-by: Kyoungjun Han <[email protected]>

* feat: new prop fromRoot for link condition

* chore: comment out thread edit function and button

* chores: deleting comments

* feat: display all threads on forum home page

* feat: adding comment delete with refresh

* feat: adding icon for views

---------

Co-authored-by: YHhaoareyou <[email protected]>
Co-authored-by: Kyoungjun Han <[email protected]>

---------

Co-authored-by: YHhaoareyou <[email protected]>
Co-authored-by: Michael Kaminski <[email protected]>
Co-authored-by: Kyoungjun Han <[email protected]>
Co-authored-by: Nicholas Narmada <[email protected]>

* fix: forum was commeted out

* feat: fixing board conditional

* feat: fixing thread tag

* feat: adding bread crumbs

* feat: working but need to fix issue of mounting

* feat: tags searching

* feat: examining useEffect

* fix: add boardId and tags as dependencies for the first useEffect

* fix: scroll function activation

* feat: adding search tag box

* feat: Add board menu in create thread to forum root

* feat: adding school selection

* feat: draft of tag menu

* feat: tweaking with Nicholas component

* fix: fixed styling of menu button and dropdown

* fix: fixed Nicholas component

* feat: added some functionalities for board to tag filtiering

* Revert "Merge branch 'develop' of https://github.com/wasedatime/wasedatime-web into feature/forum-basic"

This reverts commit 8f529dd, reversing
changes made to b098087.

* feat: reverting changes to original

* feat: major update

* feat: adding styling

* feat: adding more styling I guess i am done

* feat: additional tag filtering logic

* fix: change feeds folder directory

* feat: adding FeedBackBox

* chore: replace @vitejs/plugin-react-refresh with @vitejs/plugin-react

* feat: styling tags and school button

* feat: fixing feed back box

---------

Co-authored-by: YHhaoareyou <[email protected]>
Co-authored-by: Michael Kaminski <[email protected]>
Co-authored-by: Kyoungjun Han <[email protected]>
Co-authored-by: Nicholas Narmada <[email protected]>

* feat: final check on develop now time to deploy

* feat: adding type safety to prevent from accessing null length

* feat: adding array safety

* fix: adding another type safety for response array

* feat: adding some common css to see the change

* feat: altering styling

* feat: adding responive ness

* feat: altered timeline new feature add comment logo no more title and tag

* feat: changing our mission

* feat: enlarging the fontsize of forums. Currently it was just too small (#453)

Also changed the original eventlistener for scrolling back to infinite scroll component

* fix: fixing App layout and adding onclikc to fix links (#454)

* fix: fixing App layout and adding onclikc to fix links

* feat: refactoring threadblock structure

* chore: fixing tag typo

* feat: fixing finalization

* feat: adding max width to thread post card

* feat: added comment count (#456)

* fix: fix new feature image size

* feat: adding forum comment notification functionality (#458)

* fix: add Forum route to Root App.tsx

* fix: add Forum routes with params in Root

* chore: add Forum to sitemap

* chore: test hard-coded subpath in Forum

* fix: remove hard-coded path and add NotFound in Forum

* feat: adding images to forums (#460)

* feat: adding image indicator

* feat: adding boolean flag for page thread

* feat: forum-timstamp (#462)

* Added Timestamp

* feat: localization to JST from UTC

---------

Co-authored-by: KTheAsianimeBoi <[email protected]>

* fix: fixing idToken retreaval function (#464)

* fix: fixing feeds

* feat: forum time formating with page thread formating (#466)

* feat: disabling feeds and campus

* fix:login failed error message and post direct url (#468)

* feat: adding index html to forum src

* feat: adding routing on index.html

* feat: adding index html

* feat: forum redirect and styling (#472)

* feat: adding redirect logic for success and minor styling

* feat: dynamic sizing

* fix: unifing border thickness

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: Nicholas Narmada <[email protected]>
Co-authored-by: YHhaoareyou <[email protected]>
Co-authored-by: Nicholas Narmada <[email protected]>
Co-authored-by: Xinyue Tao <[email protected]>
Co-authored-by: AustinZhu <[email protected]>
Co-authored-by: Ikko Ashimine <[email protected]>
Co-authored-by: Michael Kaminski <[email protected]>
Co-authored-by: Kyoungjun Han <[email protected]>
Co-authored-by: KTheAsianimeBoi <[email protected]>
Co-authored-by: Umar Farooq <[email protected]>
  • Loading branch information
13 people authored Oct 4, 2023
1 parent 0359a1a commit cf5a418
Show file tree
Hide file tree
Showing 8 changed files with 121 additions and 77 deletions.
4 changes: 2 additions & 2 deletions apps/forum/src/components/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,9 @@ const InnerApp = () => {
commentNotify={commentNotify}
/>
</div>
<div className="flex flex-col h-[calc(100vh-50px)] mt-[23px]">
<div className="flex flex-col h-fit md:mt-[23px]">
{/* <div className="basis-[calc(100vh-187px)] lg:basis-[80%] dark:text-dark-text1"> */}
<div className="flex justify-between pl-2 gap-4 h-[calc(100vh-143px)]">
<div className="flex justify-between pl-2 gap-4 h-[calc(100vh-100px)]">
<div className="flex flex-col w-1/5">
{/* <BreadCrumbs onTriggerFetch={handleTriggerFetch} /> */}
<div className="pl-2 lg:pl-10">
Expand Down
4 changes: 2 additions & 2 deletions apps/forum/src/components/Board.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,10 @@ const Board = ({ triggerRefresh, setBoard }: any) => {

return (
// <div className="max-w-2/5 w-5/6 mx-auto h-full">
<div className="mx-auto px-2 h-full lg:w-5/6 max-w-[5/6] standard-style">
<div className="mx-auto px-2 h-full lg:w-5/6 max-w-[280px] sm:max-w-[900px] standard-style overflow-y-hidden">
<CreateThread onNewThread={handleNewThread} />
<div
className="overflow-auto h-[calc(100%-44px)] mt-4 md:mt-8 lg:mt-12"
className="overflow-auto h-[calc(100%-150px)] mt-4 md:mt-8 lg:mt-12"
id="scrollableDiv"
>
<InfiniteScroll
Expand Down
23 changes: 18 additions & 5 deletions apps/forum/src/components/CommentForm.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { ChangeEvent, useEffect, useState } from "react";
import React, { ChangeEvent, useEffect, useState, useRef } from "react";
import { useParams } from "react-router-dom";
import API from "@aws-amplify/api";
import { SignInModal, getIdToken } from "wasedatime-ui";
Expand All @@ -23,6 +23,7 @@ const CommentForm: React.FC<CommentFormProps> = ({
const [comment, setComment] = useState("");
const { boardSlug, threadUuid } = useParams();
const { t } = useTranslation();
const textareaRef = useRef(null);

const handleFocusForm = async () => {
if (userToken?.length <= 0) {
Expand All @@ -38,12 +39,23 @@ const CommentForm: React.FC<CommentFormProps> = ({
}
};

const handleTextChange = (e: ChangeEvent<HTMLInputElement>) => {
const handleTextChange = (e: ChangeEvent<HTMLTextAreaElement>) => {
const textArea = textareaRef.current!;
textArea.style.height = "auto";
textArea.style.height = `${textArea.scrollHeight}px`;
setComment(e.target.value);
};

const handleSubmit = async () => {
if (comment.length <= 0 || comment.length > 200) return;
if (comment.length <= 0) {
alert("Your comment cannot be empty.");
return;
}

if (comment.length > 200) {
alert("Your comment cannot exceed 200 characters.");
return;
}

let idToken = userToken;
if (idToken?.length <= 0) {
Expand Down Expand Up @@ -110,9 +122,10 @@ const CommentForm: React.FC<CommentFormProps> = ({
};

return (
<div className="flex justify-between">
<div className="flex justify-between items-center">
{/* <div>Posted at ${time}</div> */}
<input
<textarea
ref={textareaRef}
className="text-2xl text-light-text3 dark:text-dark-text1 w-full focus:text-light-text1 focus:ring border-2 mt-4 mb-2 rounded-lg px-4 py-2 standard-style"
placeholder="Write your comment here (no more than 200 character)"
value={comment}
Expand Down
152 changes: 92 additions & 60 deletions apps/forum/src/components/CreateThread.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import React, { ChangeEvent, useEffect, useState, Fragment } from "react";
import React, {
ChangeEvent,
useEffect,
useState,
Fragment,
useRef,
} from "react";
import { useParams } from "react-router-dom";
import API from "@aws-amplify/api";
import { CloseIcon } from "@app/components/icons/CloseIcon";
Expand All @@ -11,6 +17,7 @@ import ThreadType from "@app/types/thread";
import TagType from "@app/types/tag";
import ImageIcon from "@mui/icons-material/Image";
import threadPayload from "@app/types/threadPayload";
import AddPhotoAlternateIcon from "@mui/icons-material/AddPhotoAlternate";

interface CreateThreadProps {
onNewThread: (newThread: ThreadType) => void;
Expand All @@ -21,7 +28,6 @@ function classNames(...classes) {
}

const CreateThread = ({ onNewThread }: CreateThreadProps) => {
const [isExpanded, setIsExpanded] = useState(false);
const [expandSchool, setExpandSchool] = useState(false);
const [isSignInModalOpen, setSignInModalOpen] = useState(false);
const [userToken, setUserToken] = useState("");
Expand All @@ -34,14 +40,36 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
const [fileName, setFileName] = useState<string | null>(null);
const [selectedFile, setSelectedFile] = useState<File | null>(null);
const [fileType, setFileType] = useState<string | null>(null);
const [isButtonDisabled, setIsButtonDisabled] = useState(true);
const [isExpanded, setIsExpanded] = useState(false);
const textareaRef = useRef(null);

// Tags and Group buttons might be best moved to their respective components but this is how I will leave it for now.
const { boardSlug } = useParams();
const { t } = useTranslation();

useEffect(() => {
const trimmedTextContent = textContent.trim();

const isInvalidToken = !userToken || userToken.length <= 0;
const isInvalidBoard = !selectedBoard;
const isInvalidTextContent =
!textContent ||
trimmedTextContent.length <= 0 ||
trimmedTextContent.length > 2000;
const isInvalidSchool = !selectedSchool;

// Enable button only if all conditions are false (i.e., all are valid)
setIsButtonDisabled(
isInvalidToken ||
isInvalidBoard ||
isInvalidTextContent ||
isInvalidSchool
);
}, [userToken, selectedBoard, textContent, selectedSchool]);

useEffect(() => {
setSelectedBoard(boardSlug || "");
setIsExpanded(false);
setExpandSchool(false);
}, [boardSlug]);

Expand All @@ -62,12 +90,10 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {

const handleOpenForm = async () => {
if (userToken?.length > 0) {
setIsExpanded(true);
} else {
const idToken = await getIdToken();
if (idToken?.length > 0) {
setUserToken(idToken);
setIsExpanded(true);
} else {
setSignInModalOpen(true);
}
Expand All @@ -79,6 +105,9 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
};

const handleBodyChange = (e: ChangeEvent<HTMLTextAreaElement>) => {
const textArea = textareaRef.current!;
textArea.style.height = "auto";
textArea.style.height = `${textArea.scrollHeight}px`;
setTextContent(e.target.value);
};

Expand Down Expand Up @@ -215,7 +244,7 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
? getTitleBySlug(slug)
: selectedBoard
? getTitleBySlug(selectedBoard)
: "What's the Topic?"}
: "Topic"}
</Menu.Button>
</div>

Expand Down Expand Up @@ -255,31 +284,34 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
);
};

return isExpanded ? (
<div className="relative">
<div className="border-4 text-start text-black dark:text-white bg-light-card1 dark:bg-dark-bgMain dark:text-dark-text1 dark:shadow-none p-2 border-light-main dark:border-dark-main rounded-lg">
<BoardDropdownMenu slug={boardSlug} />
{/* <textarea
placeholder={`Enter Title`}
className="border-b-2 overflow-y-hidden border-light-main dark:border-dark-main h-10 pl-2 pb-2 w-full hover:outline-0 focus:outline-0 standard-style"
value={titleContent}
onChange={handleTitleChange}
/> */}
<textarea
placeholder={`Anything interesting?`}
className=" h-50 pl-2 pb-28 pt-2 w-full hover:outline-0 focus:outline-0 standard-style text-3xl overflow-y-hidden"
value={textContent}
onChange={handleBodyChange}
/>
</div>
<button
className="absolute top-0 right-2 m-1 p-1 hover:text-light-main cursor-pointer"
onClick={() => setIsExpanded(false)}
>
<CloseIcon />
</button>
<div className="absolute bottom-0 left-2 w-full flex mb-3 mt-3 text-sm justify-between">
<div className="my-auto flex flex-row gap-x-2">
return (
<div>
<div className="relative">
<div className="border-t-4 border-l-4 border-r-4 p-2 text-start text-black dark:text-white bg-light-card1 dark:bg-dark-bgMain dark:text-dark-text1 dark:shadow-none p-2 border-light-main dark:border-dark-main rounded-t-lg flex justify-between items-start relative">
{/* Added 'relative' to the parent div's class list */}

<textarea
placeholder={`Anything interesting?`}
className="h-50 pl-2 pt-2 pb-20 w-full hover:outline-0 focus:outline-0 standard-style text-3xl "
value={textContent}
onChange={handleBodyChange}
onFocus={handleOpenForm}
ref={textareaRef}
/>

<button
className={`absolute bottom-0 right-0 border m-4 px-4 py-2 rounded-lg text-3xl z-10 ${
isButtonDisabled
? "bg-gray-400 text-gray-700 hover:bg-gray-400 cursor-not-allowed"
: "border-light-main text-white bg-light-lighter hover:bg-light-darker"
}`}
onClick={isButtonDisabled ? () => {} : handleSubmit}
disabled={isButtonDisabled}
>
Post
</button>
</div>
<div className=" bottom-0 border-l-4 border-r-4 border-b-4 rounded-b-lg p-2 border-light-main dark:border-dark-main border-2 left-2 w-full flex text-sm justify-between items-center">
{/* {selectedBoard && (
<Menu as="div" className="relative inline-block text-left">
<div>
Expand Down Expand Up @@ -326,25 +358,30 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
</Transition>
</Menu>
)} */}
<button
className="inline-flex w-full justify-center gap-x-1.5 rounded-md px-3 py-2 text-sm font-semibold shadow-sm ring-1 ring-inset ring-gray-300 standard-style-hover"
onClick={() => setExpandSchool(!expandSchool)}
>
{expandSchool ? (
<SchoolFilterForm
isOpen={expandSchool}
setOpen={setExpandSchool}
setSchool={setSelectedSchool}
/>
) : null}
<p>{selectedSchool ? selectedSchool : "School"}</p>
</button>
<div className="uploader">
<div className="w-1/3 p-2 flex justify-center items-center">
<BoardDropdownMenu slug={boardSlug} />
</div>
<div className="w-1/3 p-2 flex justify-center items-center">
<button
className="inline-flex gap-x-1.5 rounded-md bg-white px-3 py-2 text-2xl font-semibold text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 hover:bg-gray-50 standard-style-hover"
onClick={() => setExpandSchool(!expandSchool)}
>
{expandSchool ? (
<SchoolFilterForm
isOpen={expandSchool}
setOpen={setExpandSchool}
setSchool={setSelectedSchool}
/>
) : null}
<p>{selectedSchool ? selectedSchool : "School"}</p>
</button>
</div>
<div className="uploader flex justify-center items-center w-1/3 p-2">
<label htmlFor="imageUpload" className="cursor-pointer">
{fileName ? (
<span>{fileName}</span>
) : (
<ImageIcon fontSize="large" />
<AddPhotoAlternateIcon style={{ fontSize: "40px" }} />
)}
</label>
<input
Expand All @@ -356,21 +393,8 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
/>
</div>
</div>
<button
className="border-light-main border mx-4 px-4 py-1 rounded-lg text-white bg-light-lighter hover:bg-light-darker text-3xl"
onClick={handleSubmit}
>
Post
</button>
</div>
</div>
) : (
<div>
<div className="cursor-pointer" onClick={handleOpenForm}>
<h1 className="border-4 p-2 rounded-lg border-light-main">
Anything interesting?
</h1>
</div>

<SignInModal
isModalOpen={isSignInModalOpen}
closeModal={() => setSignInModalOpen(false)}
Expand All @@ -381,3 +405,11 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
};

export default CreateThread;
{
/* <textarea
placeholder={`Enter Title`}
className="border-b-2 overflow-y-hidden border-light-main dark:border-dark-main h-10 pl-2 pb-2 w-full hover:outline-0 focus:outline-0 standard-style"
value={titleContent}
onChange={handleTitleChange}
/> */
}
4 changes: 2 additions & 2 deletions apps/forum/src/components/Thread.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,11 @@ const Thread = () => {
}, [threadUuid, boardSlug]);

const handleNewComment = (newComment: CommentType) => {
setComments((prevComments) => [newComment, ...prevComments]);
setComments((prevComments) => [...prevComments, newComment]);
};

return (
<div className="border-2 mt-12 mx-1 md:mx-auto rounded-xl shadow-lg py-6 h-fit px-4 standard-style max-w-[290px] lg:max-w-[900px]">
<div className="border-2 w-full md:w-5/6 mx-auto rounded-xl shadow-lg py-6 px-4 standard-style max-w-[290px] sm:max-w-[900px] overflow-y-auto h-fit">
{/* <CreateThread /> */}

<ThreadBlock isPreview={false} thread={thread} />
Expand Down
2 changes: 1 addition & 1 deletion apps/forum/src/components/ThreadBlock.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ const ThreadBlock = ({ isPreview, fromRoot, thread, onDelete }: Props) => {
<img
src={thread.url}
alt="Thread Image"
className="block mx-auto p-4"
className="block mx-auto p-4 max-h-[calc(100vh-143px*2)]"
/>
) : null}
<h2
Expand Down
2 changes: 1 addition & 1 deletion apps/forum/src/root.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ ReactGA.initialize(import.meta.env.VITE_GA_ID, {});

export default function Root(props) {
return (
<section className="h-screen">
<section className="sm:h-screen h-[calc(100vh-50px)]">
<RecoilRoot>
<ThemeProvider>
<App />
Expand Down
7 changes: 3 additions & 4 deletions apps/root/src/components/user/RedirectPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,15 @@ const RedirectPage = () => {
if (window.location.search.includes("error_description")) {
await timeout(5000)
navigate("/")
} else {
await timeout(1000)
navigate("/")
}
}

redirectToHomeAfter5Sec().catch((err) => console.error(err))
}, [])

//! https://wasedatime.com/verify?error_description=Loginfail....

//! https://wasedatime.com/verify -> considered as success

return window.location.search.includes("error_description") ? (
<div className="mt-20 text-center">
<LoadingSpinner theme={theme} message={t("verify.failed.title")} />
Expand Down

0 comments on commit cf5a418

Please sign in to comment.