* Fix chart `onMouseOver` propagation
* Make generic charts support money on y-axis
* Fix somewhat ridiculous `formatMoney` to work with negative amounts
* Make margins on charts configurable
* Implement color as function of point on SingleValueHistoryChart
* Rewrite portfolio history graphs with new graph machinery
* Toast Nivo
* Fiddle around with everything, WIP FR charts
* Implement numeric chart
* Reorganize everything into neat little files
* Add `AreaWithTopStroke` helper
* Tidying, don't gratuitously use d3.format
* Remove duplicate code
* Better tooltip bisection
* `NumericPoint` -> `DistributionPoint`
* Add numeric market tooltip
* Make numeric chart bucket points less wrong
* Clean up numeric bucket computation
* Clean up a bunch of tooltip stuff, add FR legend tooltips
* Fix a dumb bug
* Implement basic time selection
* Fix fishy Date.now inconsistency bugs
* Might as well show all the FR outcomes now
* Make tooltips accurate on curveStepAfter charts
* Make log scale PN charts work properly
* Adjust x-axis tick count
* Display tooltip on charts only for mouse
* Fix up deps
* Tighter chart tooltips
* Adjustments to chart time range management
* Better date formatting
* Continue tweaking time selection handling to be perfect
* Make FR charts taller by default
* 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
* 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
* 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
* Move concurrently dep upwards
* Add express as explicit dependency
* Accept just one HTTP method per endpoint
* Fix endpoint option coalescing
* Expressification of cloud functions
* Nicer logging of API requests
* Refactor web package.json
* Add ts-node and nodemon to dev dependencies, bring back cors
* Add scaffolding to point dev server at local functions
* Enable emulator in dev server scaffolding
* Fix up a little stuff I broke
* Add @ mentions to editor
* Fix mention list not loading
* Sort mention list by prefix, follow count
* Render at mention with Linkify component
- mentions are now Next <Link> rather than <a>
- fix bug where editor.getText() returns [object Object] for mentions
- fix mention rendering for posted markets
* 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
* Set up Firestore structure for mana bounty links
* Split up manalinks into successes and failures
* Allow clients to create manalinks
* Track txnId and successful users
* Store custom amounts in the link
* List all manalinks you've created
* Support backend for claiming manalinks
* Add some more error handling
* Tweak readme
* Fix typescript breakage
* Revert "Convert common imports in functions to be absolute"
This reverts commit c03518e906.
* Scaffolding so `claimManalink` works
* Clean up imports
* Barebones endpoint to claim mana
* Fix rules to only allow link creators to query
* Design out claim giftcard
* List all claimed transactions
* Style in a more awesome card
* Fix import
* Padding tweak
* Fix useManalinkTxns hook
* /send -> /link
* Tidy up some details
* Do a bunch of random manalinks work
* Fix up LinksTable to build
* Clean up LinksTable an absurd amount
* Basic details functionality on manalinks table
* Work on manalink claim stuff
* Fix up some merge mess
* Not-signed-in flow implemented
* Better manalinks table
* Only show outstanding links in table
* Use new `ManalinkTxn` type
* /link -> /links
* Change manalinks page UI to use nice looking tabs
* Many fixes to manalinks UI
* Default to 1 use
* Tidying up
* Some copy changes based on feedback
* Add required index
Co-authored-by: Marshall Polaris <marshall@pol.rs>
* Create following button that opens follow list in modal.
* Move react query deps to web package.json
* UseFollowers hook
* Following and followers button, dialog with tabs.
* Fix line endings
* Remove carriage return from default vscode eol
* Add placeholder message if no users followed / no followers
* Tweak spacing
* Play with using 3 icons for 1-click usage
* Align bet icons with the percentages
* Hide liquidity injection star, for now
* Fix Free Response card layouts
* Use triangles instead of planes
* Set correct hover states the arrows
* Fix down triangle & padding
* Default large nums to 2 sigfigs
* Clean up hover areas
* Fix bet width, remove "chance/expected"
* Show "M$20" on hover, hide arrows when closed
* Improve click targets
* FR: "MULTI" => "MANY", single => "TOP"
* Install react-hot-toaster
* Implement quick betting on binary questions
* Handle different kinds of markets
* Extract out QuickBet into its own component
* Minor tweaks
* Visually separate out quick bet pane
* Hide quick bet for FR markets with no answers
* Fill in which bets the user has already placed
* Animate movements, fix binary direction
* Hover arrows are now always gray
* Pull out code into quick-bet.tsx
* Minor comments
* Fix import
ts-ignore is scary
* Fixes from James's feedback
* Hide text only on quickbet
* Improve typing of client CORS helper
* Take node-fetch as a dependency
* Add explicit Firebase region into config
* Add new Vercel proxy API routes that talk to backend
* Call Vercel proxy routes from `api-call` module
* Tweak import to try to get Vercel happy
* Tidy up a tiny bit
* Add a couple missing dependencies for hooks
* Upgrade eslint
This newer eslint and typescript-eslint fixes some spurious warnings
that were bugs and supports our version of Typescript.
* Use Next Script component the way it wants us to
* Rephrase ContractLeaderboard component to avoid useEffect woes
* Use perhaps more idiomatic type for ContractLeaderboard props
* Make Folds data fetching more correct and more clear
* Add components for CPM landing and charity pages
* Remove misc.ts to fix build
* Set up cloud function for writing txns
* More plumbing for txns
* Fix up API call
* Use Date.now() to keep timestamps simple
* Some styles for charity list page
* Hard code charities data
* Pass charity data to charity page
* Update txn type
* Listen for charity txns
* Handle txn to non-user by burning it
* Read txns for charity card and charity page.
* Set images to object contain
* Clean up txn types
* Move pic to top of card. Other misc styling.
* Update charity short & long descriptions
* Add `token` and `category` to Txn
* Fix breakages
* Show Charity link in the sidebar
* Fix typing issues
* Fix not reading from the right type
* Switch out icon
* Also show Charity icon on mobile
* Update copy
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
Co-authored-by: James Grugett <jahooma@gmail.com>
* Allow users a free daily market
* Show confetti on recent created market
* remove unused import
* remove comment
* Did create market -> hook, capitalize buttons
* Check for confetti with interval
* Just check once
* Capitalize create market button on feed