* 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.
* fix https
* add beasts
* Remove extra file
* Prettier-ify code
* Prettier-ify
* add basic land guesser
also added fetcher to filter all cards instead of only unique art
* default to original
makes basic better
* added set symbol to basics
added set symbol to the basics game mode. Changed name to "How Basic"
* cleanup
* changed some pixels
* only load set data if needed
* hacked fix for removing image from name
* removed check from original
* remove check from original
* sort names by set instead of by set symbol
* include battlebond
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
* fix https
* add beasts
* Remove extra file
* Prettier-ify code
* Prettier-ify
* add basic land guesser
also added fetcher to filter all cards instead of only unique art
* default to original
makes basic better
* added set symbol to basics
added set symbol to the basics game mode. Changed name to "How Basic"
* cleanup
* changed some pixels
* only load set data if needed
* hacked fix for removing image from name
* removed check from original
* remove check from original
* sort names by set instead of by set symbol
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
* fix https
* add beasts
* Remove extra file
* Prettier-ify code
* Prettier-ify
* add basic land guesser
also added fetcher to filter all cards instead of only unique art
* default to original
makes basic better
* added set symbol to basics
added set symbol to the basics game mode. Changed name to "How Basic"
* cleanup
* changed some pixels
* only load set data if needed
* hacked fix for removing image from name
* removed check from original
* remove check from original
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
* fix https
* add beasts
* Remove extra file
* Prettier-ify code
* Prettier-ify
* add basic land guesser
also added fetcher to filter all cards instead of only unique art
* default to original
makes basic better
* added set symbol to basics
added set symbol to the basics game mode. Changed name to "How Basic"
* cleanup
* changed some pixels
* only load set data if needed
* hacked fix for removing image from name
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
* Add min, max, isLogScale to numeric market API return
* Add lastUpdatedTime to market API
* Return a string description in market API
* Accept string descriptions in market POST api
* install prettier eslint config. fix import
* fix another import
* Make `groupConsecutive` more capable
* Put denormalized `contractQuestion` and `contractSlug` on comments
* Update user profile UI to use new denormalized fields
* `/Austin` -> `/market`
* Rewrite useQueryAndSortParams machinery to be faster/simpler/better
* Politely debounce Algolia querying
* Tidy some stuff up
* Style changes suggested by James
* Move search controls into separate component
* Fix up typing on pill groups thingy
* More precise comparison per James
* Make sure `additionalFilter` is passed into controls
* 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
* Make all tooltips use our component
* Stop mobile tooltip crop (daisy -> floating-ui)
* Show tooltip on tap for touch devices
Except tooltips on buttons
* migrate another daisy tooltip to ours
* Prevent hidden tooltip from covering click/hover
* Embed a tweet by URL
* Clean up imports
* Prevent tweetId from getting interpreted as a number
* Use a single place to embed iframe, Youtube, and Tweets
* Support Manifold and Metaculus embeds
* Remove unused import
* Simplify Manifold paste logic
* Clean up embed rewrite code
* Add back comment
* Rejigger config so tsx is only in web/
* Clean up comment
* Revert unnecessary tsconfig change
* Fix placeholder
* Lighten placeholder
* 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>