* Load bets and comments tabs data on user page independently
* Implement basic pagination on profile comments list
* Tweak server auth to return `null` instead of `undefined`
* Switch to SSR for user page
* Fix lint
* Fix broken contract fetching in user bets list
* Tidying
* Return both user and privateUser from `createuser`
* Make `useStateCheckEquality` more flexible
* Make `AuthContext` track the private user doc
* Change `usePrivateUser` hook to use the auth context data
* Pass both user and private user through SSR to auth context
* Fix bug in create user flow
* Embed markets using the "add markets" template
* Override dev domain
* Improve market modal style
- contract searchbar now sticky
- entire card clickable to select (if quickbet is hidden)
- adjust selected card styles
* remove extra export
* Hide pills
* Fix browser redirect warning
* Insert all markets instead of just one
* fix type error
* fixup "Insert all markets instead of just one"
Co-authored-by: Sinclair Chen <abc.sinclair@gmail.com>
* Fix problems with visibility checking code
* Tear out old contract tracking stuff per James
* Use `useEvent` in VisibilityObserver per James suggestion
* Revert "Revert "Switch comments/chat to rich text editor (#703)""
This reverts commit 33906adfe4.
* Fix typing after being weird on Android
Issue: character from mention gets deleted. Most weird on Swiftkey:
mention gets duplicated instead of deleting.
See https://github.com/ProseMirror/prosemirror/issues/565https://bugs.chromium.org/p/chromium/issues/detail?id=612446
The keyboard still closes unexpectedly when you delete :(
* On reply, put space instead of \n after mention
* Remove image upload from placeholder text
- Redundant with image upload button
- Too long on mobile
* fix dependency
* Add cloud function to get custom token from API auth
* Use custom token to authenticate Firebase SDK on server
* Make sure getcustomtoken cloud function is fast
* Make server auth code maximally robust
* Refactor cookie code, make set and delete more flexible
* Challenge bets
* Store avatar url
* Fix before and after probs
* Check balance before creation
* Calculate winning shares
* pretty
* Change winning value
* Set shares to equal each other
* Fix share challenge link
* pretty
* remove lib refs
* Probability of bet is set to market
* Remove peer pill
* Cleanup
* Button on contract page
* don't show challenge if not binary or if resolved
* challenge button (WIP)
* fix accept challenge: don't change pool/probability
* Opengraph preview [WIP]
* elim lib
* Edit og card props
* Change challenge text
* New card gen attempt
* Get challenge on server
* challenge button styling
* Use env domain
* Remove other window ref
* Use challenge creator as avatar
* Remove user name
* Remove s from property, replace prob with outcome
* challenge form
* share text
* Add in challenge parts to template and url
* Challenge url params optional
* Add challenge params to parse request
* Parse please
* Don't remove prob
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Add to readme about how to dev og-image
* Add emojis
* button: gradient background, 2xl size
* beautify accept bet screen
* update question button
* Add separate challenge template
* Accepted challenge sharing card, fix accept bet call
* accept challenge button
* challenge winner page
* create challenge screen
* Your outcome/cost=> acceptorOutcome/cost
* New create challenge panel
* Fix main merge
* Add challenge slug to bet and filter by it
* Center title
* Add helper text
* Add FAQ section
* Lint
* Columnize the user areas in preview link too
* Absolutely position
* Spacing
* Orientation
* Restyle challenges list, cache contract name
* Make copying easy on mobile
* Link spacing
* Fix spacing
* qr codes!
* put your challenges first
* eslint
* Changes to contract buttons and create challenge modal
* Change titles around for current bet
* Add back in contract title after winning
* Cleanup
* Add challenge enabled flag
* Spacing of switch button
* market share row
* Add lite market endpoint
* 500 mana email (#687)
* Create 500-mana.html
* Update 500-mana.html
Fixed typos and links not working
* Added "create a good market" guide
added page creating-market.html
For Stephen to set up condition (email 3 days after signing up)
* Update 500-mana.html
updated 500 Mana email (still need to make changes to create market guide)
* email changes
* sendOneWeekBonusEmail logic
* add dayjs as dependency
* don't use mailgun scheduling
Co-authored-by: mantikoros <sgrugett@gmail.com>
* Challenge Bets (#679)
* Challenge bets
* Store avatar url
* Fix before and after probs
* Check balance before creation
* Calculate winning shares
* pretty
* Change winning value
* Set shares to equal each other
* Fix share challenge link
* pretty
* remove lib refs
* Probability of bet is set to market
* Remove peer pill
* Cleanup
* Button on contract page
* don't show challenge if not binary or if resolved
* challenge button (WIP)
* fix accept challenge: don't change pool/probability
* Opengraph preview [WIP]
* elim lib
* Edit og card props
* Change challenge text
* New card gen attempt
* Get challenge on server
* challenge button styling
* Use env domain
* Remove other window ref
* Use challenge creator as avatar
* Remove user name
* Remove s from property, replace prob with outcome
* challenge form
* share text
* Add in challenge parts to template and url
* Challenge url params optional
* Add challenge params to parse request
* Parse please
* Don't remove prob
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Add to readme about how to dev og-image
* Add emojis
* button: gradient background, 2xl size
* beautify accept bet screen
* update question button
* Add separate challenge template
* Accepted challenge sharing card, fix accept bet call
* accept challenge button
* challenge winner page
* create challenge screen
* Your outcome/cost=> acceptorOutcome/cost
* New create challenge panel
* Fix main merge
* Add challenge slug to bet and filter by it
* Center title
* Add helper text
* Add FAQ section
* Lint
* Columnize the user areas in preview link too
* Absolutely position
* Spacing
* Orientation
* Restyle challenges list, cache contract name
* Make copying easy on mobile
* Link spacing
* Fix spacing
* qr codes!
* put your challenges first
* eslint
* Changes to contract buttons and create challenge modal
* Change titles around for current bet
* Add back in contract title after winning
* Cleanup
* Add challenge enabled flag
* Spacing of switch button
* Put sharing qr code in modal
Co-authored-by: mantikoros <sgrugett@gmail.com>
* See challenges you've accepted too
* Remove max height
* Notify mentioned users on market publish (#683)
* Add function to parse at mentions
* Notify mentioned users on market create
- refactor createNotification to accept list of recipients' ids
* Switch comments/chat to rich text editor (#703)
* Switch comments/chat to rich text editor
* Remove TruncatedComment
* Re-add submit on enter
* Insert at mention on reply
* Update editor style for send button
* only submit on enter in chat
* code review: refactor
* use more specific type for upload
* fix ESlint and errors from merge
* fix trigger on every render eslint warning
* Notify people mentioned in comment
* fix type errors
* Revert "Switch comments/chat to rich text editor (#703)"
This reverts commit f52da72115.
* merge conflict
* share modal
* merge issue
* eslint
* bigger link icion
Co-authored-by: Ian Philips <iansphilips@gmail.com>
Co-authored-by: James Grugett <jahooma@gmail.com>
Co-authored-by: SirSaltyy <104849031+SirSaltyy@users.noreply.github.com>
Co-authored-by: Sinclair Chen <abc.sinclair@gmail.com>
* Switch comments/chat to rich text editor
* Remove TruncatedComment
* Re-add submit on enter
* Insert at mention on reply
* Update editor style for send button
* only submit on enter in chat
* code review: refactor
* use more specific type for upload
* fix ESlint and errors from merge
* fix trigger on every render eslint warning
* Notify people mentioned in comment
* fix type errors
* Challenge bets
* Store avatar url
* Fix before and after probs
* Check balance before creation
* Calculate winning shares
* pretty
* Change winning value
* Set shares to equal each other
* Fix share challenge link
* pretty
* remove lib refs
* Probability of bet is set to market
* Remove peer pill
* Cleanup
* Button on contract page
* don't show challenge if not binary or if resolved
* challenge button (WIP)
* fix accept challenge: don't change pool/probability
* Opengraph preview [WIP]
* elim lib
* Edit og card props
* Change challenge text
* New card gen attempt
* Get challenge on server
* challenge button styling
* Use env domain
* Remove other window ref
* Use challenge creator as avatar
* Remove user name
* Remove s from property, replace prob with outcome
* challenge form
* share text
* Add in challenge parts to template and url
* Challenge url params optional
* Add challenge params to parse request
* Parse please
* Don't remove prob
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Add to readme about how to dev og-image
* Add emojis
* button: gradient background, 2xl size
* beautify accept bet screen
* update question button
* Add separate challenge template
* Accepted challenge sharing card, fix accept bet call
* accept challenge button
* challenge winner page
* create challenge screen
* Your outcome/cost=> acceptorOutcome/cost
* New create challenge panel
* Fix main merge
* Add challenge slug to bet and filter by it
* Center title
* Add helper text
* Add FAQ section
* Lint
* Columnize the user areas in preview link too
* Absolutely position
* Spacing
* Orientation
* Restyle challenges list, cache contract name
* Make copying easy on mobile
* Link spacing
* Fix spacing
* qr codes!
* put your challenges first
* eslint
* Changes to contract buttons and create challenge modal
* Change titles around for current bet
* Add back in contract title after winning
* Cleanup
* Add challenge enabled flag
* Spacing of switch button
* Put sharing qr code in modal
Co-authored-by: mantikoros <sgrugett@gmail.com>
* Add in group chat bubble
* Show chat bubble on nav with unseen notifs
* Spacing
* More spacing
* Remove chat tab
* Show chat on help/welcome/updates/features groups
* Cleanup
* Scroll with updated height
* Update group links in trigger and api
* Remove extra call during creation
* Remove grouplinks on frontend
* Deserialize
* Consolidate logic
* Move function locally
* In progress refactor to not use Algolia components
* Cleanup
* Only query when necessary
* Read and update url params for query and sort
* Don't push router
* Don't update url if using default sort
* Add popstate listener to improve home navigation
* Remove console.logs
* Make better tabs components, apply to user page
* Remove fishy unused href property from tabs
* Remove tab ID property
* Clean up crufty markup in tabs component
* Fix naming to be right (thanks James!)
* Referrals page added to sidebar; useSaveReferral; InfoBox
* text color
* eslint
* migrate useUsers hook to react-query (#674)
* Remove bet button from free response comments
* Make answer replies more closely spaced together
* Host Ida and Alex's MTG Guesser game (#656)
* Copy over code from Mtg Guesser
* Run Prettier
* CSS Tweaks: Hover feedback, button positioning
* Hide all but counterspell & burn, for now
* Move to /mtg directory
* Fix prettierignore
* smaller jsons (#673)
limited burn to only red cards and also added limited json files to only have fields needed to play
* Add Ida's tweak to card position
Co-authored-by: marsteralex <bob.masteralex@gmail.com>
* Adjust card positioning
* Make the select screen index.html
* Remove other guessing games
* Remove alternate versions; add Alex's email
* Remove unused jsons
* Small FR comments tweaks
* Spacing tweak
* Changing manalinks table UI (#665)
From table to card view
* Fix comment spacing on non-FR
* Move "Send M$" lower in sidebar More list.
* Move leaderboards up in mobile nav
* eslint
* prettier
Co-authored-by: Sinclair Chen <abc.sinclair@gmail.com>
Co-authored-by: James Grugett <jahooma@gmail.com>
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
Co-authored-by: marsteralex <bob.masteralex@gmail.com>
Co-authored-by: ingawei <46611122+ingawei@users.noreply.github.com>
* Make a React context to manage the logged in user events
* Remove unnecessary new user creation promise machinery
* Slight refactoring to auth context code
* Improvements in response to James feedback
* Cache notifs in local, gives instant load of old notifs
* Small refactor, add ss auth
* unused vars
* Add back in replaceAll
* Save all notifs
* Memoize paginated notifs
* Replace all => replace with regexp
* Set a cookie with an up-to-date Firebase ID token
* Implement server-side authentication cookie reading logic
* Change index page to redirect for authed users
* No branch necessary for logged in users on index page
* Add helpers for creating server-side redirects
* Add some common sense redirects
* fixed manalinks bug of claiming own manalink, and also rerouting to home upon claiming if not logged in
* no more multiple hardcoded manalink messages
* start on script
* Revert "Remove category filters"
This reverts commit d6e808e1a3.
* Convert categories to official default groups
* Add new users to default groups
* Rework group cards
* Cleanup
* Add unique bettors to contract and sort by them
* Most bettors to most popular
* Unused vars
* Track unique bettor ids on contracts
* Add followed users' bets to personal markets
* Add new users to welcome, bugs, and updates groups
* Add users to fewer default cats
* Add TipTap editor and renderer components
* Change market description editor to rich text
* Type description as JSON, fix string-based logic
- Delete make-predictions.tsx
- Delete feed logic that showed descriptions
* wip Fix API validation
* fix type error
* fix extension import (backend)
In firebase, typescript compiles imports into common js imports
like `const StarterKit = require("@tiptap/starter-kit")`
Even though StarterKit is exported from the cjs file, it gets imported
as undefined. But it magically works if we import *
If you're reading this in the future, consider replacing StarterKit with
the entire list of extensions.
* Stop load on fail create market, improve warning
* Refactor editor as hook / fix infinite submit bug
Move state of editor back up to parent
We have to do this later anyways to allow parent to edit
* Add images - display, paste + uploading
* add uploading state of image
* Fix placeholder, misc styling
min height, quote
* Fix appending to description
* code review fixes: rename, refactor, chop carets
* Add hint & upload button on new lines
- bump to Tailwind 3.1 for arbitrary variants
* clean up, run prettier
* rename FileButton to FileUploadButton
* add image extension as functions dependency
* Simple limit order UI
* Update bet schema
* Restrict bet panel / bet row to only CPMMBinaryContracts (all binary DPM are resolved)
* Limit orders partway implemented
* Update follow leaderboard copy
* Change cpmm code to take some state instead of whole contract
* Write more of matching algorithm
* Fill in more of placebet
* Use client side contract search for emulator
* More correct matching
* Merge branch 'main' into limit-orders
* Some cleanup
* Listen for unfilled bets in bet panel. Calculate how the probability moves based on open limit orders.
* Simpler switching between bet & limit bet.
* Render your open bets (unfilled limit orders)
* Cancel bet endpoint.
* Fix build error
* Rename open bets to limit bets. Tweak payout calculation
* Limit probability selector to 1-99
* Deduct user balance only on each fill. Store orderAmount of bet. Timestamp of fills.
* Use floating equal to check if have shares
* Add limit order switcher to mobile bet dialog
* Support limit orders on numeric markets
* Allow CORS exception for Vercel deployments
* Remove console.logs
* Update user balance by new bet amount
* Tweak vercel cors
* Try another regexp for vercel cors
* Test another vercel regex
* Slight notifications refactor
* Fix docs edit link (#624)
* Fix docs edit link
* Update github links
* Small groups UX changes
* Groups UX on mobile
* Leaderboards => Rankings on groups
* Unused vars
* create: remove automatic setting of log scale
* Use react-query to cache notifications (#625)
* Use react-query to cache notifications
* Fix imports
* Cleanup
* Limit unseen notifs query
* Catch the bounced query
* Don't use interval
* Unused var
* Avoid flash of page nav
* Give notification question priority & 2 lines
* Right justify timestamps
* Rewording
* Margin
* Simplify error msg
* Be explicit about limit for unseen notifs
* Pass limit > 0
* Remove category filters
* Remove category selector references
* Track notification clicks
* Analyze tab usage
* Bold more on new group chats
* Add API route for listing a bets by user (#567)
* Add API route for getting a user's bets
* Refactor bets API to use /bets
* Update /markets to use zod validation
* Update docs
* Clone missing indexes from firestore
* Minor notif spacing adjustments
* Enable tipping on group chats w/ notif (#629)
* Tweak cors regex for vercel
* Your limit bets
* Implement selling shares
* Merge branch 'main' into limit-orders
* Fix lint
* Move binary search to util file
* Add note that there might be closed form
* Add tooltip to explain limit probability
* Tweak
* Cancel your limit orders if you run out of money
* Don't show amount error in probability input
* Require limit prob to be >= .1% and <= 99.9%
* Fix focus input bug
* Simplify mobile betting dialog
* Move mobile limit bets list into bet dialog.
* Small fixes to existing sell shares client
* Lint
* Refactor useSaveShares to actually read from localStorage, use less bug-prone interface.
* Fix NaN error
* Remove TODO
* Simple bet fill notification
* Tweak wording
* Sort limit bets by limit prob
* Padding on limit bets
* Match header size
Co-authored-by: Ian Philips <iansphilips@gmail.com>
Co-authored-by: ahalekelly <ahalekelly@gmail.com>
Co-authored-by: mantikoros <sgrugett@gmail.com>
Co-authored-by: Ben Congdon <ben@congdon.dev>
Co-authored-by: Austin Chen <akrolsmir@gmail.com>