diff --git a/web/components/resolution-panel.tsx b/web/components/resolution-panel.tsx
new file mode 100644
index 00000000..167ccdcb
--- /dev/null
+++ b/web/components/resolution-panel.tsx
@@ -0,0 +1,81 @@
+import clsx from 'clsx'
+import React, { useState } from 'react'
+
+import { Contract } from '../lib/firebase/contracts'
+import { Col } from './layout/col'
+import { Title } from './title'
+import { User } from '../lib/firebase/users'
+import { YesNoCancelSelector } from './yes-no-selector'
+import { Spacer } from './layout/spacer'
+
+export function ResolutionPanel(props: {
+ creator: User
+ contract: Contract
+ className?: string
+}) {
+ const { creator, contract, className } = props
+
+ const [outcome, setOutcome] = useState<'YES' | 'NO' | 'CANCEL' | undefined>()
+
+ const resolveDisabled = false
+
+ function resolve() {}
+
+ return (
+
+
+
+
Resolve outcome
+
+
+
+
+
+ {outcome === 'YES' ? (
+ <>
+ Winnings will be paid out to Yes bettors. You earn 1% of the No
+ bets.
+ >
+ ) : outcome === 'NO' ? (
+ <>
+ Winnings will be paid out to No bettors. You earn 1% of the Yes
+ bets.
+ >
+ ) : outcome === 'CANCEL' ? (
+ <>All bets will be returned with no fees.>
+ ) : (
+ <>Resolving this market will immediately pay out bettors.>
+ )}
+