From ea69991b9d958e1ae36503c394a2158f7f4f7298 Mon Sep 17 00:00:00 2001 From: Jason Park <93040528+JasonNotJson@users.noreply.github.com> Date: Sat, 30 Sep 2023 22:53:49 +0900 Subject: [PATCH] feat: adding images and timestamp (#463) * fix(deps): update dependency @aws-amplify/auth to v4 (#352) Co-authored-by: Renovate Bot * 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 * 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 * chore(deps): update dependency ts-loader to v9.2.8 (#359) Co-authored-by: Renovate Bot * 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 * 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 * 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 * 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 * 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 * 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 * chore(deps): update dependency ts-loader to v9.2.8 (#359) Co-authored-by: Renovate Bot * 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 * 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 * 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 * 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 Co-authored-by: Nicholas Narmada <36405403+nichnarmada@users.noreply.github.com> Co-authored-by: Nicholas Narmada Co-authored-by: Xinyue Tao <96937379+xinyue296@users.noreply.github.com> Co-authored-by: AustinZhu * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 Co-authored-by: Kyoungjun Han --------- Co-authored-by: YHhaoareyou Co-authored-by: Michael Kaminski <91806277+kamlnskll@users.noreply.github.com> Co-authored-by: Kyoungjun Han Co-authored-by: Nicholas Narmada * 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 8f529dd122369328f51fc8180bbc5ddc16b4a614, reversing changes made to b098087ecae7ed8f3226a35d9be23004eedcb116. * 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 Co-authored-by: Michael Kaminski <91806277+kamlnskll@users.noreply.github.com> Co-authored-by: Kyoungjun Han Co-authored-by: Nicholas Narmada * 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 --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Renovate Bot Co-authored-by: Nicholas Narmada <36405403+nichnarmada@users.noreply.github.com> Co-authored-by: YHhaoareyou Co-authored-by: Nicholas Narmada Co-authored-by: Xinyue Tao <96937379+xinyue296@users.noreply.github.com> Co-authored-by: AustinZhu Co-authored-by: Ikko Ashimine Co-authored-by: Michael Kaminski <91806277+kamlnskll@users.noreply.github.com> Co-authored-by: Kyoungjun Han Co-authored-by: KTheAsianimeBoi --- apps/forum/src/components/App.tsx | 11 +++- apps/forum/src/components/Comment.tsx | 10 ++-- apps/forum/src/components/CommentForm.tsx | 15 +++--- apps/forum/src/components/CreateThread.tsx | 61 +++++++++++++++++++--- apps/forum/src/components/Thread.tsx | 8 +++ apps/forum/src/components/ThreadBlock.tsx | 29 ++++++++-- apps/forum/src/types/thread.ts | 2 + apps/forum/src/types/threadPayload.ts | 12 +++++ apps/forum/src/utils/timeFormatter.tsx | 28 ++++++++++ apps/root/sitemap.xml | 18 ++++--- apps/root/src/App.tsx | 3 +- 11 files changed, 165 insertions(+), 32 deletions(-) create mode 100644 apps/forum/src/types/threadPayload.ts create mode 100644 apps/forum/src/utils/timeFormatter.tsx diff --git a/apps/forum/src/components/App.tsx b/apps/forum/src/components/App.tsx index 7e41f4a0c..e04651147 100644 --- a/apps/forum/src/components/App.tsx +++ b/apps/forum/src/components/App.tsx @@ -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 ( @@ -25,6 +25,14 @@ const App = () => { export default App; +const NotFound = () => { + const { theme } = React.useContext(ThemeContext); + const navigate = useNavigate(); + useEffect(() => navigate("/")); + + return ; +}; + const InnerApp = () => { const { t, i18n } = useTranslation(); @@ -108,6 +116,7 @@ const InnerApp = () => { path="forum/:boardSlug" /> } path="forum/:boardSlug/:threadUuid" /> + } path="*" />
diff --git a/apps/forum/src/components/Comment.tsx b/apps/forum/src/components/Comment.tsx index af9e1e7ae..afe2daa8a 100644 --- a/apps/forum/src/components/Comment.tsx +++ b/apps/forum/src/components/Comment.tsx @@ -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; @@ -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); @@ -100,8 +101,6 @@ const Comment = ({ comment, thread, setComments, setThread }: Props) => { } ); - console.log(res); - const action = "update_decr"; await API.patch( "wasedatime-dev", @@ -129,12 +128,15 @@ const Comment = ({ comment, thread, setComments, setThread }: Props) => { } }; + const time = timeFormatter(comment); + console.log(comment); + return (

{convertUrlsToLinks(comment.body)}

-

+

Posted at {time}

{comment.mod === true && (
diff --git a/apps/forum/src/components/CommentForm.tsx b/apps/forum/src/components/CommentForm.tsx index 1871b6011..d470eff1c 100644 --- a/apps/forum/src/components/CommentForm.tsx +++ b/apps/forum/src/components/CommentForm.tsx @@ -66,6 +66,7 @@ const CommentForm: React.FC = ({ ); const newComment: CommentType = response.data; + onNewComment(newComment); setComment(""); @@ -105,12 +106,12 @@ const CommentForm: React.FC = ({ } } catch (error) { console.error("An error occurred:", error); - } finally { } }; return (
+ {/*
Posted at ${time}
*/} = ({ > - {isSignInModalOpen && ( - setSignInModalOpen(false)} - t={t} - /> - )} + setSignInModalOpen(false)} + t={t} + />
); }; diff --git a/apps/forum/src/components/CreateThread.tsx b/apps/forum/src/components/CreateThread.tsx index a2a9c980c..eecad3972 100644 --- a/apps/forum/src/components/CreateThread.tsx +++ b/apps/forum/src/components/CreateThread.tsx @@ -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; @@ -29,6 +31,9 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => { const [selectedBoard, setSelectedBoard] = useState(""); const [selectedTag, setSelectedTag] = useState(null); const [selectedSchool, setSelectedSchool] = useState(""); + const [fileName, setFileName] = useState(null); + const [selectedFile, setSelectedFile] = useState(null); + const [fileType, setFileType] = useState(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(); @@ -81,6 +86,20 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => { setSelectedTag(tag); }; + const handleImageChange = (e: ChangeEvent) => { + 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 @@ -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", @@ -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); @@ -308,6 +339,22 @@ const CreateThread = ({ onNewThread }: CreateThreadProps) => { ) : null}

{selectedSchool ? selectedSchool : "School"}

+
+ + +