fix: art selector

This commit is contained in:
bartosz-lipinski 2021-04-26 17:05:45 -05:00
parent f8c5458d48
commit 127eeb03cf
3 changed files with 32 additions and 26 deletions

View File

@ -242,8 +242,6 @@ export const mintNFT = async (
updateSigners, updateSigners,
); );
debugger;
notify({ notify({
message: 'Art created on Solana', message: 'Art created on Solana',
description: ( description: (

View File

@ -46,11 +46,13 @@ export const ArtSelector = (props: ArtSelectorProps) => {
}; };
const confirm = () => { const confirm = () => {
let list = items.filter(item => setTimeout(() => {
selectedItems.has(item.metadata.pubkey.toBase58()), let list = items.filter(item =>
); selectedItems.has(item.metadata.pubkey.toBase58()),
setSelected(list); );
close(); setSelected(list);
close();
}, 200);
}; };
const breakpointColumnsObj = { const breakpointColumnsObj = {
@ -131,9 +133,11 @@ export const ArtSelector = (props: ArtSelectorProps) => {
list = []; list = [];
} }
isSelected const newSet = isSelected
? setSelectedItems(new Set(list.filter(item => item !== id))) ? new Set(list.filter(item => item !== id))
: setSelectedItems(new Set([...list, id])); : new Set([...list, id]);
setSelectedItems(newSet);
if (!allowMultiple) { if (!allowMultiple) {
confirm(); confirm();

View File

@ -57,6 +57,7 @@ import {
SafetyDepositDraft, SafetyDepositDraft,
} from '../../actions/createAuctionManager'; } from '../../actions/createAuctionManager';
import BN from 'bn.js'; import BN from 'bn.js';
import { ZERO } from '@oyster/common/dist/lib/constants';
const { Step } = Steps; const { Step } = Steps;
const { Option } = Select; const { Option } = Select;
@ -110,6 +111,8 @@ export interface AuctionState {
spots?: number; spots?: number;
tiers?: Array<Tier>; tiers?: Array<Tier>;
winnersCount: number;
} }
export const AuctionCreateView = () => { export const AuctionCreateView = () => {
@ -128,6 +131,7 @@ export const AuctionCreateView = () => {
items: [], items: [],
category: AuctionCategory.Open, category: AuctionCategory.Open,
saleType: 'auction', saleType: 'auction',
winnersCount: 1,
}); });
useEffect(() => { useEffect(() => {
@ -154,28 +158,27 @@ export const AuctionCreateView = () => {
winnerLimit = new WinnerLimit({ winnerLimit = new WinnerLimit({
type: WinnerLimitType.Unlimited, type: WinnerLimitType.Unlimited,
usize: new BN(0), usize: ZERO,
}); });
} else if (attributes.category == AuctionCategory.Single) { } else if (attributes.category == AuctionCategory.Single) {
settings = new AuctionManagerSettings({ settings = new AuctionManagerSettings({
openEditionWinnerConstraint: WinningConstraint.NoOpenEdition, openEditionWinnerConstraint: WinningConstraint.NoOpenEdition,
openEditionNonWinningConstraint: NonWinningConstraint.NoOpenEdition, openEditionNonWinningConstraint: NonWinningConstraint.NoOpenEdition,
winningConfigs: [ winningConfigs: attributes.items.map((item, index) => ({
{ // TODO: check index
safetyDepositBoxIndex: 0, safetyDepositBoxIndex: index,
amount: 1, amount: 1,
hasAuthority: false, hasAuthority: false,
editionType: items[0].masterEdition editionType: item.masterEdition
? EditionType.MasterEdition ? EditionType.MasterEdition
: EditionType.NA, : EditionType.NA,
}, })),
],
openEditionConfig: null, openEditionConfig: null,
openEditionFixedPrice: null, openEditionFixedPrice: null,
}); });
winnerLimit = new WinnerLimit({ winnerLimit = new WinnerLimit({
type: WinnerLimitType.Capped, type: WinnerLimitType.Capped,
usize: new BN(1), usize: new BN(attributes.winnersCount),
}); });
} else { } else {
throw new Error('Not supported'); throw new Error('Not supported');
@ -188,7 +191,8 @@ export const AuctionCreateView = () => {
winnerLimit, winnerLimit,
new BN((attributes.auctionDuration || 1) * 60), new BN((attributes.auctionDuration || 1) * 60),
new BN((attributes.gapTime || 1) * 60), new BN((attributes.gapTime || 1) * 60),
[items[0]], attributes.items,
// TODO: move to config
new PublicKey('4XEUcBjLyBHuMDKTARycf4VXqpsAsDcThMbhWgFuDGsC'), new PublicKey('4XEUcBjLyBHuMDKTARycf4VXqpsAsDcThMbhWgFuDGsC'),
); );
}; };
@ -356,7 +360,7 @@ export const AuctionCreateView = () => {
)} )}
<Col {...(saving ? { xl: 24 } : { xl: 16, md: 17 })}> <Col {...(saving ? { xl: 24 } : { xl: 16, md: 17 })}>
{stepsByCategory[attributes.category][step][1]} {stepsByCategory[attributes.category][step][1]}
{0 < step && step < stepsByCategory[attributes.category].length && ( {0 < step && step < (stepsByCategory[attributes.category].length -1) && (
<Button <Button
style={{ width: '100%' }} style={{ width: '100%' }}
onClick={() => gotoNextStep(step - 1)} onClick={() => gotoNextStep(step - 1)}
@ -489,7 +493,7 @@ const CopiesStep = (props: {
> >
Select NFT Select NFT
</ArtSelector> </ArtSelector>
<label className="action-field"> {props.attributes.category !== AuctionCategory.Open && <label className="action-field">
<span className="field-title"> <span className="field-title">
How many copies do you want to create? How many copies do you want to create?
</span> </span>
@ -507,7 +511,7 @@ const CopiesStep = (props: {
}) })
} }
/> />
</label> </label>}
</Col> </Col>
</Row> </Row>
<Row> <Row>