* Factor out section header
* Remove daily balance change
* Remove dead code
* Layout, add streak
* Fix visibility observer to work on server
* Tweak
* Search perserved by url
* Add pill query param
* Add search page
* Extract component for ProbChangeRow
* Explore groups page
* Add search row
* Add trending groups section
* Add unfollow option for group
* Experimental home: accommodate old saved sections.
* Tweaks to search layout
* Rearrange layout
* Daily movers page
* Add streak grayed out indicator
* Use firebase query instead of algolia search for groups
* Replace trending group card with pills
* Hide streak if you turned off that notification
* Listen for group updates
* Better UI for adding / removing groups
* Toast feedback for join/leave group. Customize button moved to bottom.
* Remove Home title
* Refactor arrange home
* Add new for you section
* Add prefetch
* Move home out of experimental!
* Remove unused import
* Show non-public markets from group
* Bot linking button functional.
* Implemented initial prototype of new Twitch signup page.
* Removed old Twitch signup page.
* Moved new Twitch page to correct URL.
* Twitch account linking functional.
* Fixed charity link.
* Changed to point to live bot server.
* Slightly improve spacing and alignment on Twitch page
* Tidy up, handle some errors when talking to bot
* Seriously do the thing where Twitch link is hidden by default
* Fixed secondary Get Started button. Copy overlay and dock link now functional.
* Add/remove bot from channel working.
* Removed legacy Twitch controls from user profile.
* Links provided by dock/overlay buttons are now correct.
* Minor profile cleanup post merge.
* Fixed unnecessary relinking Twitch account when logging in on Twitch page.
* Added confirmation popup to refresh API key. Refreshing API key now requires a user to relink their Twitch account.
* Removed legacy twitch-panel.tsx
Co-authored-by: Marshall Polaris <marshall@pol.rs>
* Move tabs to sidebar
* Address all feedback
Fix icon names
Extract navbar component into a separate function
Rm arrow and indentation
Move group name under logo
Fix visual sidebar stretchy thing
Fix visual bug
* Extra nits
* Bot linking button functional.
* Implemented initial prototype of new Twitch signup page.
* Removed old Twitch signup page.
* Moved new Twitch page to correct URL.
* Twitch account linking functional.
* Fixed charity link.
* Changed to point to live bot server.
* Slightly improve spacing and alignment on Twitch page
* Tidy up, handle some errors when talking to bot
* Seriously do the thing where Twitch link is hidden by default
Co-authored-by: Marshall Polaris <marshall@pol.rs>
* Revert "Revert "Use %mention to embed a contract card in rich text editor (#869)""
This reverts commit e0634cea6d.
* Overwrite name to prevent breakages
* Fix '%' mentioning if you escape out
* Cleanup: merge render functions
* Bring up a list of contracts with @
* Fix hot reload for RichContent
* Render contracts as half-size cards
* Use % as the prompt; allow for spaces
* WIP: When there's no matching question, create a new contract
* Revert "WIP: When there's no matching question, create a new contract"
This reverts commit efae1bf715.
* Rename to contract-mention
* WIP: Try to merge in @ and % side by side
* Add a different pluginKey
* Track the prosemirror-state dep
* twitch account linking; profile page twitch panel; twitch landing page
* fix import
* twitch logo
* save twitch credentials cloud function
* use user id instead of bot id, add manifold api endpoint
* properly add function to index
* Added support for new redirect Twitch auth.
* Added clean error handling in case of Twitch link fail.
* remove simulator
* Removed legacy non-redirect Twitch auth code. Added "add bot to channel" button in user profile and relevant data to user type.
* Removed unnecessary imports.
* Fixed line endings.
* Allow users to modify private user twitchInfo firestore object
* Local dev on savetwitchcredentials function
Co-authored-by: Phil <phil.bladen@gmail.com>
Co-authored-by: Marshall Polaris <marshall@pol.rs>
* Denormalize user display fields onto bets
* Make bet denormalization script fast enough to run it on prod
* Make `placeBet`/`sellShares` immediately post denormalized info
* Factor out section header
* Remove daily balance change
* Remove dead code
* Layout, add streak
* Fix visibility observer to work on server
* Tweak
* Formatting
* Line clamp question in prob change table
* Tweaks
* Expand option for daily movers
* Snap scrolling for carousel
* Add arrows to section headers
* Remove carousel from experimental/home
* React querify fetching your groups
* Edit home is its own page
* Add daily profit and balance
* Merge branch 'main' into new-home
* Make experimental search by your followed groups/creators
* Just submit, allow xs on pills
* Weigh in
* Use next/future/image component to optimize avatar images
* Inga/challenge icon (#857)
* changed challenge icon to custom icon
* fixed tip button alignment
* weighing in and trading "weigh in" for "trade"
* Delete closing soon, mark new as New for you, trending is site-wide
* Delete your trades. Factor out section item
* Don't allow hiding of home sections
* Convert daily movers into a section
* Tweaks for loading daily movers
* Prob change table shows variable number of rows
* Fix double negative
Co-authored-by: Ian Philips <iansphilips@gmail.com>
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
Co-authored-by: ingawei <46611122+ingawei@users.noreply.github.com>
Co-authored-by: mantikoros <sgrugett@gmail.com>
* Submit comments on ctrl/cmd-enter
* Remove unused import
* Tweak padding on /tournaments
* Always submit on ctrl+enter
Since we took out group chats, this should be fine for all comments
* Line clamp question in prob change table
* Tweaks
* Expand option for daily movers
* Snap scrolling for carousel
* Add arrows to section headers
* Remove carousel from experimental/home
* React querify fetching your groups
* Edit home is its own page
* Add daily profit and balance
* Merge branch 'main' into new-home
* Make experimental search by your followed groups/creators
* Just submit, allow xs on pills
* Weigh in
* Use next/future/image component to optimize avatar images
* Inga/challenge icon (#857)
* changed challenge icon to custom icon
* fixed tip button alignment
* weighing in and trading "weigh in" for "trade"
Co-authored-by: Ian Philips <iansphilips@gmail.com>
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
Co-authored-by: ingawei <46611122+ingawei@users.noreply.github.com>
Co-authored-by: mantikoros <sgrugett@gmail.com>
* Toggle monthly leaderboards
I didn't get to enabling monthly leaderboards after my work trial was over (I enabled daily/weekly/alltime). The cache has been filled out for a while now, this toggles it on.
* Fix nits
* Make tournament page efficient
* Fix URL to Salem contract
* Use totalMembers instead of deprecated field
* Increase page size to 12
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
* Handle the case where a user is surprisingly not in the DB
* Only set referral info on user after creation
* More reliably cache current user info in local storage
* Don't jam username stuff into user listener hook
* Members and contracts now documents
* undo loans change?
* Handle closed group
* Slight refactoring
* Don't allow modification of private groups contracts
* Add back in numMembers
* Update group field names
* Update firestore rules
* Update firestore rules
* Handle updated groups
* update start numbers
* Lint
* Lint
* Add embedded market grids
* Hacky way to set height
I haven't figured out a way yet to get the height of the actual iframe's content, so I did some bad estimate for now to unblock shipping the feature, while I continue investigating.
* Clean up some markup & dead code
* Order comments in Firestore instead of on client
* Order bets in Firestore instead of on client
* Make indexes file up to date with production
* WIP liking markets with tip
* Refactor Userlink, add MultiUserLink
* Lint
* Lint
* Fix merge
* Fix imports
* wip liked contracts list
* Cache likes and liked by user ids on contract
* Refactor tip amount, reduce to M
* Move back to M
* Change positioning for large screens
* De-feedify contract bets list
* De-feedify contract comments lists
* Clean up a bunch of duplicated work in the comments list stuff
* Remove wrapper markup from comment replies list
* Fix sort order on comments I broke
* Kill now unhelpful `CommentRepliesList` wrapper component
* More random cleanup
* More cleanup and fix some styling I had broken
* Make bet calculations less wrong
* Keep up to date with master
* Make copy link component copy better URL
* Make highlighted comments align properly
* Make user header left align with content on comments
* Fix some free response UI stuff up
* WIP persistence work
* Fix up close date filter, kill custom scroll restoration
* Use built-in Next.js scroll restoration machinery
* Tweaking stuff
* Implement 'history state' idea
* Clean up and unify persistent state stores
* Respect options for persisting contract search
* Fix typing in common lib
* Clean up console logging
* Create backend for Dashboards
* Rm lastupdatetime for now
* Added a create-dashboard and sharable view dashboard page
* Various nit fixes.
* Renamed Dashboards to Posts
* Fix nits
* Convert useUserBets to react query
* Fix duplicate key warnings
* Fix react-query workaround to use refetchOnMount: always'
* Use react query for portfolio history
* Fix useUserBet workaround
* Script to back fill unique bettors in all contracts
* React query for user bet contracts, using uniqueBettorsId!
* Prefetch user bets / portfolio data
* Make portfolio graph on profile not load extra data
* Clean up unused props
* Tidy up markup
* Enable "daily" option again on portfolio history picker
* add utility class for `word-break: break-word`
* refactor visuallyHidden style out of Page
* refactor out ref sizing hack in sidebar
* replace style props with tailwind classes
* Allow to follow/unfollow markets, backfill as well
* remove yarn script edit
* add decrement comment
* Lint
* Decrement follow count on unfollow
* Follow/unfollow button logic
* Unfollow/follow => heart
* Add user to followers in place-bet and sell-shares
* Add tracking
* Show contract follow modal for first time following
* Increment follower count as well
* Remove add follow from bet trigger
* restore on-create-bet
* Add pubsub to dev.sh, show heart on FR, remove from answer trigger
* Remove some old loan code
* Almost complete implementation of updateLoans cloud function
* Merge fixes
* Use invested instead of sale value, check if eligible, perform payouts
* Run monday 12am
* Implement loan income notification
* Fix imports
* Loan update fixes / debug
* Handle NaN and negative loan calcs
* Working loan notification
* Loan modal!
* Move loans calculation to /common
* Better layout
* Pay back loan on sell shares
* Pay back fraction of loan on redeem
* Sell bet loan: negate buy bet's loan
* Modal tweaks
* Compute and store nextLoanCached for all users
* lint
* Update loans with newest portfolio
* Filter loans to only unresolved contracts
* Tweak spacing
* Increase memory
* Revert "Revert "Tile contract cards in masonry layout (#761)""
This reverts commit 62728e52b7.
* Sort the contracts in the correct masonry order
* Fix ordering on single columns
* Use react-masonry-css to accomplish masonry view
* Improve comment
* Remove gridClassName
Everything is spaced with m-4, too bad
* Send out email template for 3 trending markets
* Rich text to plaintext descriptions, other ui changes
* Lint
* Filter for closed markets
* Change sign
* First order must be closeTime
* Send 6 emails, check flag twice
* Exclude contracts with trump and president in the name
* interesting markets email
* sendInterestingMarketsEmail
* Change subject line back
Co-authored-by: mantikoros <sgrugett@gmail.com>
* rename BetRow -> BetButton
* Replace bet modal in embed with inline betting
- Also simplifies graph height calculation
* Move bet row above graph, in "mini modal"
* Show signup button if not signed up
* Show probability change
* Show error after modal
- Show balance if insufficient funds
- Clear error from amount input if amount deleted entirely
* Fix error state conditions
- Reset amount input on success
- Reset success state on user input
* Make input smaller (80px)
Headless UI's Modal component autofocuses the first focusable item
inside it when opened. This is by design for accessibility reasons.
See https://headlessui.com/react/dialog#managing-initial-focus
Ironically this means we'll have to remove keyboard focus for tooltips
because this causes the tooltips to pop up unnecessarily for all users
whenever the dialog is opened. The alternative is managing focus
manually for several dialogs, which may not be possible as some of our
modals lack a sensible element to focus by default.