Skip to content

Commit

Permalink
feat: adding images and timestamp (#463)
Browse files Browse the repository at this point in the history
* 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]>

---------

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]>
  • Loading branch information
12 people authored Sep 30, 2023
1 parent 63e918f commit ea69991
Show file tree
Hide file tree
Showing 11 changed files with 165 additions and 32 deletions.
11 changes: 10 additions & 1 deletion apps/forum/src/components/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import SearchTags from "./SearchTags";
import FeedBackBox from "./FeedBackBox";
import ArrowBackIcon from "@mui/icons-material/ArrowBack";
import { API } from "@aws-amplify/api";
import { getUserAttr, getIdToken } from "wasedatime-ui";
import { getUserAttr, getIdToken, LoadingSpinner } from "wasedatime-ui";

const App = () => {
return (
Expand All @@ -25,6 +25,14 @@ const App = () => {

export default App;

const NotFound = () => {
const { theme } = React.useContext(ThemeContext);
const navigate = useNavigate();
useEffect(() => navigate("/"));

return <LoadingSpinner theme={theme} message="Not found! Redirecting..." />;
};

const InnerApp = () => {
const { t, i18n } = useTranslation();

Expand Down Expand Up @@ -108,6 +116,7 @@ const InnerApp = () => {
path="forum/:boardSlug"
/>
<Route element={<Thread />} path="forum/:boardSlug/:threadUuid" />
<Route element={<NotFound />} path="*" />
</Routes>
</div>
<div className="flex flex-col sm:w-1/5 ">
Expand Down
10 changes: 6 additions & 4 deletions apps/forum/src/components/Comment.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { ConfirmModal } from "@app/components/form/ConfirmModal";
import API from "@aws-amplify/api";
import { getIdToken } from "wasedatime-ui";
import ThreadType from "@app/types/thread";
import { timeFormatter } from "../utils/timeFormatter";

type Props = {
comment: CommentType;
Expand All @@ -18,7 +19,7 @@ type Props = {
const convertUrlsToLinks = (text: string) => {
if (!text) return null;

const urlRegex = /https?:\/\/[^\s]+/g;
const urlRegex: RegExp = /https?:\/\/[^\s]+/g;
const parts = text.split(urlRegex);
const matches = text.match(urlRegex);

Expand Down Expand Up @@ -100,8 +101,6 @@ const Comment = ({ comment, thread, setComments, setThread }: Props) => {
}
);

console.log(res);

const action = "update_decr";
await API.patch(
"wasedatime-dev",
Expand Down Expand Up @@ -129,12 +128,15 @@ const Comment = ({ comment, thread, setComments, setThread }: Props) => {
}
};

const time = timeFormatter(comment);
console.log(comment);

return (
<Block actions={actions}>
<div className="border-2 rounded-xl px-4 py-2 text-light-text2 mt-4 standard-style flex flex-row justify-between items-center">
<div>
<h2 className="text-2xl p-2">{convertUrlsToLinks(comment.body)}</h2>
<h2 className="text-xs my-auto"></h2>
<h2 className="text-xs my-auto">Posted at {time}</h2>
</div>
{comment.mod === true && (
<div className="justify-end">
Expand Down
15 changes: 7 additions & 8 deletions apps/forum/src/components/CommentForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ const CommentForm: React.FC<CommentFormProps> = ({
);

const newComment: CommentType = response.data;

onNewComment(newComment);
setComment("");

Expand Down Expand Up @@ -105,12 +106,12 @@ const CommentForm: React.FC<CommentFormProps> = ({
}
} catch (error) {
console.error("An error occurred:", error);
} finally {
}
};

return (
<div className="flex justify-between">
{/* <div>Posted at ${time}</div> */}
<input
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)"
Expand All @@ -126,13 +127,11 @@ const CommentForm: React.FC<CommentFormProps> = ({
>
<SendIcon />
</span>
{isSignInModalOpen && (
<SignInModal
isModalOpen={isSignInModalOpen}
closeModal={() => setSignInModalOpen(false)}
t={t}
/>
)}
<SignInModal
isModalOpen={isSignInModalOpen}
closeModal={() => setSignInModalOpen(false)}
t={t}
/>
</div>
);
};
Expand Down
61 changes: 54 additions & 7 deletions apps/forum/src/components/CreateThread.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import SchoolFilterForm from "./common/SchoolFilter";
import { Menu, Transition } from "@headlessui/react";
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";

interface CreateThreadProps {
onNewThread: (newThread: ThreadType) => void;
Expand All @@ -29,6 +31,9 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
const [selectedBoard, setSelectedBoard] = useState("");
const [selectedTag, setSelectedTag] = useState<TagType | null>(null);
const [selectedSchool, setSelectedSchool] = useState("");
const [fileName, setFileName] = useState<string | null>(null);
const [selectedFile, setSelectedFile] = useState<File | null>(null);
const [fileType, setFileType] = useState<string | null>(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();
Expand Down Expand Up @@ -81,6 +86,20 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
setSelectedTag(tag);
};

const handleImageChange = (e: ChangeEvent<HTMLInputElement>) => {
const file = e.target.files ? e.target.files[0] : null;
if (file) {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onloadend = () => {
const base64data = reader.result as string;
setSelectedFile(base64data); // Store the base64-encoded image
setFileType(file.type); // Store the MIME type of the file
};
setFileName(file.name); // Store the name of the selected file
}
};

const handleSubmit = async () => {
// Require a Board
// If current board isn't chosen, then output this
Expand Down Expand Up @@ -125,18 +144,26 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
}

try {
const payload: threadPayload = {
body: textContent,
title: "default",
tag_id: "default",
group_id: selectedSchool,
univ_id: "1",
board_id: selectedBoard,
};

if (selectedFile) {
payload.image = selectedFile;
payload.contentType = fileType || "";
payload.fileName = fileName || "image";
}
const response = await API.post(
"wasedatime-dev",
`/forum/${selectedBoard}`,
{
body: {
data: {
body: textContent,
title: "default",
tag_id: "default",
group_id: selectedSchool,
univ_id: "1",
},
data: payload,
},
headers: {
"Content-Type": "application/json",
Expand All @@ -158,6 +185,10 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
setTitleContent("");
setTextContent("");
setSelectedBoard("");
setSelectedSchool("");
setSelectedFile(null);
setFileType(null);
setFileName(null);
setSelectedTag(null);
} catch (error) {
console.log(error);
Expand Down Expand Up @@ -308,6 +339,22 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => {
) : null}
<p>{selectedSchool ? selectedSchool : "School"}</p>
</button>
<div className="uploader">
<label htmlFor="imageUpload" className="cursor-pointer">
{fileName ? (
<span>{fileName}</span>
) : (
<ImageIcon fontSize="large" />
)}
</label>
<input
type="file"
id="imageUpload"
accept="image/png, image/jpeg, image/gif" // allow only images
className="hidden"
onChange={handleImageChange}
/>
</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"
Expand Down
8 changes: 8 additions & 0 deletions apps/forum/src/components/Thread.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ const Thread = () => {
setUserToken(userId);
}

let idToken = "";
if (idToken?.length <= 0) {
idToken = await getIdToken();
if (idToken?.length <= 0) return;
}

// Wait for the state to update, then proceed with fetching
// Fetch Threads
await API.get(
Expand All @@ -31,6 +37,7 @@ const Thread = () => {
headers: {
"x-api-key": "0PaO2fHuJR9jlLLdXEDOyUgFXthoEXv8Sp0oNsb8",
"Content-Type": "application/json",
Authorization: idToken,
},
response: true,
}
Expand Down Expand Up @@ -73,6 +80,7 @@ const Thread = () => {
return (
<div className="border-2 mt-12 mx-auto rounded-xl shadow-lg py-6 h-fit px-4 standard-style max-w-2/5 w-5/6">
{/* <CreateThread /> */}

<ThreadBlock isPreview={false} thread={thread} />
<CommentForm
onNewComment={handleNewComment}
Expand Down
29 changes: 24 additions & 5 deletions apps/forum/src/components/ThreadBlock.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import TextsmsIcon from "@mui/icons-material/Textsms";
import ArrowBackIcon from "@mui/icons-material/ArrowBack";
import boards from "@app/constants/boards.json";
import ThreadType from "@app/types/thread";
import { timeFormatter } from "@app/utils/timeFormatter";
import ImageIcon from "@mui/icons-material/Image";

type Props = {
isPreview: boolean;
Expand Down Expand Up @@ -120,7 +122,6 @@ const ThreadBlock = ({ isPreview, fromRoot, thread, onDelete }: Props) => {
}
);
if (response && response.success) {
console.log(response);
setUserLiked(!userLiked);

if (userLiked) {
Expand Down Expand Up @@ -163,7 +164,7 @@ const ThreadBlock = ({ isPreview, fromRoot, thread, onDelete }: Props) => {
};

const handleShare = () => {
const url = `${window.location.origin}/board/${thread.board_id}/${thread.thread_id}`;
const url = `${window.location.origin}/forum/${thread.board_id}/${thread.thread_id}`;

navigator.clipboard.writeText(url).then(
() => {
Expand All @@ -182,6 +183,7 @@ const ThreadBlock = ({ isPreview, fromRoot, thread, onDelete }: Props) => {

const navigate = useNavigate();

const time = timeFormatter(thread);
const renderContent = () => {
return (
<div
Expand All @@ -202,9 +204,15 @@ const ThreadBlock = ({ isPreview, fromRoot, thread, onDelete }: Props) => {
{/* ^ This line goes to parent board on click while in thread */}
<div className={`px-2`}>
<div className="flex justify-between mt-2">
<h1 className="text-4xl font-bold mb-auto text-light-main dark:text-dark-main text-3xl">
{getTitleBySlug(thread.board_id)}
</h1>
<div className="flex items-center justify-center mb-auto gap-x-4">
<h1 className="text-4xl font-bold text-light-main dark:text-dark-main text-3xl">
{getTitleBySlug(thread.board_id)}
</h1>

<ImageIcon
color={thread.obj_key || thread.url ? "success" : "inherit"}
/>
</div>
<div className="flex justify-center flex-col items-center">
{/* ToDo: create component for tag within Thread Block */}
{thread.group_id && (
Expand All @@ -229,19 +237,30 @@ const ThreadBlock = ({ isPreview, fromRoot, thread, onDelete }: Props) => {
) */}
</div>
</div>
{thread.url ? (
<img
src={thread.url}
alt="Thread Image"
className="block mx-auto p-4"
/>
) : null}
<h2
className="justify-left pt-4 text-light-text1 dark:text-dark-text1"
style={{ whiteSpace: "pre-line" }}
>
{convertUrlsToLinks(isPreview, thread.body)}
</h2>
<h2 className="text-lg mt-5">Posted at {time}</h2>
</div>
{/* <div className="inline-block text-blue-600 rounded-lg pl-2 pt-2">
{" "}
{`# ${thread.tag_id}`}
</div> */}
<hr className="mx-2 pt-2 mt-6" />
{/* horizontal line break */}
<div className="flex flex-row justify-evenly pt-2 items-center">
{/* The down panel that has like button, views in total, etc...*/}

<div className="flex flex-row items-center justify-center">
<button onClick={handleLike} className="clipboard-icon group">
<Favorite
Expand Down
2 changes: 2 additions & 0 deletions apps/forum/src/types/thread.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ type ThreadType = {
total_likes?: number;
comment_count?: number;
new_comment?: boolean;
obj_key?: string;
url?: string;
};

export default ThreadType;
12 changes: 12 additions & 0 deletions apps/forum/src/types/threadPayload.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
type threadPayload = {
body: string;
title: string;
tag_id: string;
group_id: string;
univ_id: string;
board_id: string;
image?: File;
contentType?: string;
fileName?: string;
};
export default threadPayload;
28 changes: 28 additions & 0 deletions apps/forum/src/utils/timeFormatter.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import CommentType from "@app/types/comment";
import ThreadType from "@app/types/thread";

type threadOrComment = CommentType | ThreadType;

export function timeFormatter(newComment: threadOrComment): string {
const utcTimestamp = newComment.created_at;
const date = new Date(utcTimestamp);

// Add 9 hours to UTC time
date.setUTCHours(date.getUTCHours() + 9);

// Extract year, month, date, hours, and minutes
const year = date.getUTCFullYear();
const month = date.getUTCMonth() + 1; // Months are 0-based, so add 1
const day = date.getUTCDate();
const hours = date.getUTCHours();
const minutes = date.getUTCMinutes();

// Format the components as a string
const formattedTimestamp = `${year}-${month.toString().padStart(2, "0")}-${day
.toString()
.padStart(2, "0")} ${hours.toString().padStart(2, "0")}:${minutes
.toString()
.padStart(2, "0")}`;

return formattedTimestamp;
}
Loading

0 comments on commit ea69991

Please sign in to comment.