Skip to content
This repository has been archived by the owner on May 4, 2019. It is now read-only.

Commit

Permalink
feat(apply button): add logic to handle loading item list
Browse files Browse the repository at this point in the history
  • Loading branch information
tnoelcke committed Oct 11, 2018
1 parent 510137b commit 0e7ff35
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 30 deletions.
31 changes: 9 additions & 22 deletions src/ItemBank/ItemBankContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -197,17 +197,14 @@ export class ItemBankContainer extends React.Component<
};

handleUpdateItems = (items: ItemRevisionModel[]) => {
const currentItem = items.length > 0 ? items[0] : undefined;
const lastItem = items[items.length - 1];
items.forEach(item => {
if (!validItemRevisionModel(item) && item !== lastItem) {
item.valid = false;
} else {
item.valid = true;
}
});
if (validItemRevisionModel(lastItem) || items.length === 0) {
items.push({});
let currentItem: ItemRevisionModel | undefined;
if (items.length > 1) {
const itemMatch = items.filter(
item => itemsAreEqual(this.state.currentItem, item) || false
);
currentItem = itemMatch[0] ? itemMatch[0] : items[0];
} else {
currentItem = undefined;
}
this.setState({ items, currentItem }, () => {
this.handleChangeViewItem();
Expand Down Expand Up @@ -417,15 +414,6 @@ export class ItemBankContainer extends React.Component<
});
};

submitItems = (items: ItemRevisionModel[]) => {
// will need to do more stuff here.
if (items.length >= 2) {
this.setState({ items });
} else {
this.clearItems();
}
};

onRevisionSelect = (revision: string) => {
const { currentItem, revisions } = this.state;
let revisionContent = getResourceContent(revisions);
Expand All @@ -451,14 +439,13 @@ export class ItemBankContainer extends React.Component<
content = (
<ItemBankEntry
updateCsvText={this.handleUpdateCsvText}
updateItems={this.handleUpdateItems}
namespaces={namespacesContent}
sections={sectionsContent}
csvText={csvText}
items={items}
deleteItem={this.deleteItem}
clearItems={this.clearItems}
submitItems={this.submitItems}
submitItems={this.handleUpdateItems}
/>
);
}
Expand Down
7 changes: 2 additions & 5 deletions src/ItemBank/ItemBankEntry.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import {

export interface ItemBankEntryProps {
updateCsvText: (csvText: string) => void;
updateItems: (items: ItemRevisionModel[]) => void;
deleteItem: (item: number) => void;
clearItems: () => void;
submitItems: (items: ItemRevisionModel[]) => void;
Expand Down Expand Up @@ -54,7 +53,7 @@ export class ItemBankEntry extends React.Component<
};

renderCsvEntry() {
const { csvText, namespaces } = this.props;
const { csvText, namespaces, submitItems } = this.props;

return (
<Accordion
Expand All @@ -68,8 +67,8 @@ export class ItemBankEntry extends React.Component<
csvText={csvText}
namespaces={namespaces}
onCsvTextUpdate={this.props.updateCsvText}
onItemsUpdate={this.props.updateItems}
onApply={this.onCsvApply}
onItemsUpdate={submitItems}
/>
</div>
</div>
Expand All @@ -80,7 +79,6 @@ export class ItemBankEntry extends React.Component<
renderTableEntry() {
const {
items,
updateItems,
clearItems,
namespaces,
sections,
Expand All @@ -96,7 +94,6 @@ export class ItemBankEntry extends React.Component<
>
<ItemEntryTable
itemRows={items}
onItemsUpdate={updateItems}
namespaces={namespaces}
sections={sections}
onDeleteItem={deleteItem}
Expand Down
10 changes: 7 additions & 3 deletions src/ItemEntryTable/ItemEntryTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ export interface ItemEntryTableProps {
itemRows: ItemRevisionModel[];
namespaces: NamespaceModel[];
sections: SectionModel[];
onItemsUpdate: (items: ItemRevisionModel[]) => void;
onDeleteItem: (items: number) => void;
onClearItems: () => void;
onSubmit: (items: ItemRevisionModel[]) => void;
Expand Down Expand Up @@ -71,8 +70,13 @@ export class ItemEntryTable extends React.Component<
handleClearItems() {
this.props.onClearItems();
this.setState((state: ItemEntryTableState, props: ItemEntryTableProps) => {
console.log(props);
return { itemRows: props.itemRows };
});
}

handleSubmit() {
this.props.onSubmit(this.state.itemRows);
this.setState((state: ItemEntryTableState, props: ItemEntryTableProps) => {
return { itemRows: props.itemRows };
});
}
Expand Down Expand Up @@ -120,7 +124,7 @@ export class ItemEntryTable extends React.Component<
<td>
<input
className="btn btn-primary submit-button bg-primary"
onClick={apply => this.props.onSubmit(this.state.itemRows)}
onClick={click => this.handleSubmit()}
type="button"
value="apply"
/>
Expand Down

0 comments on commit 0e7ff35

Please sign in to comment.