diff --git a/mobile/src/WorkItem/WorkItem.js b/mobile/src/WorkItem/WorkItem.js
index 0a95200..4f4ce94 100644
--- a/mobile/src/WorkItem/WorkItem.js
+++ b/mobile/src/WorkItem/WorkItem.js
@@ -66,7 +66,7 @@ export class WorkItem extends React.Component {
isValid: (r, v) => v !== "",
},
workItemType: {
- isValid: true,
+ isValid: (r, v) => v !== "",
alwaysGet: true,
},
}
@@ -171,14 +171,11 @@ export class WorkItem extends React.Component {
@autobind
handleRegionChange(region) {
- const { binder } = this.state
-
- this.setState(
- binder.updateFieldValue(
- "location",
+ if (this.latLngInput) {
+ this.latLngInput.handleChangeText(
formatLatLng(region.latitude, region.longitude)
)
- )
+ }
}
render() {
@@ -200,6 +197,7 @@ export class WorkItem extends React.Component {
name="workItemType"
label="Work Item Type:"
options={workItemTypeEnum}
+ message="Select a work item type"
/>
@@ -235,7 +233,12 @@ export class WorkItem extends React.Component {
pointerEvents={false}
/>
-
+ (this.latLngInput = ref)}
+ binder={binder}
+ name="location"
+ label="Location:"
+ />
Pictures:
diff --git a/mobile/src/WorkItem/WorkItemList.js b/mobile/src/WorkItem/WorkItemList.js
index 3c671ff..5406643 100644
--- a/mobile/src/WorkItem/WorkItemList.js
+++ b/mobile/src/WorkItem/WorkItemList.js
@@ -52,12 +52,40 @@ export class WorkItemList extends React.Component {
}
@autobind
- handleItemSelect(item, index) {
+ handleItemSelect(item, ref) {
this.props.history.push(`/workitem?id=${item._id}`)
}
@autobind
- handleItemDelete(item, index) {}
+ handleItemDelete(item, ref) {
+ api
+ .deleteWorkItem(item._id)
+ .then(() => {
+ return api
+ .listWorkItems()
+ .then((list) => {
+ this.setState({ listItems: list.items })
+ })
+ .catch(() => {
+ this.setState({
+ messageModal: {
+ icon: "hand",
+ message: "Unable to get list of work items",
+ detail: error.message,
+ },
+ })
+ })
+ })
+ .catch(() => {
+ this.setState({
+ messageModal: {
+ icon: "hand",
+ message: "Unable to get delete work item",
+ detail: error.message,
+ },
+ })
+ })
+ }
@autobind
handleMessageDismiss() {
@@ -65,7 +93,7 @@ export class WorkItemList extends React.Component {
}
@autobind
- handleAddPress(item, index) {
+ handleDonePress() {
this.props.history.push("/workitem")
}
@@ -88,7 +116,7 @@ export class WorkItemList extends React.Component {
(item._id)}
- renderItem={({ item, index }) => (
+ keyExtractor={(item) => item._id}
+ renderItem={({ item }, rowMap) => (
this.handleItemSelect(item, index)}>
+ onPress={() => this.handleItemSelect(item, rowMap[item._id])}>
)}
- renderHiddenItem={({ item, index }) => (
+ renderHiddenItem={({ item }, rowMap) => (
this.handleItemDelete(item, index)}>
+ onPress={() => this.handleItemDelete(item, rowMap[item._id])}>
- {label}
+
+
+ {label}
+
1}
numberOfLines={lines}
editable={!disabled}
- autoCapitalize='none'
- underlineColorAndroid='white'
+ autoCapitalize="none"
+ underlineColorAndroid="white"
value={value}
secureTextEntry={password}
onChangeText={this.handleChangeText}
- placeholder={placeholder} />
- {message}
+ placeholder={placeholder}
+ />
+
+ {message}
+
)
}
diff --git a/mobile/src/ui/BoundOptionStrip.js b/mobile/src/ui/BoundOptionStrip.js
index 2c98674..3648608 100644
--- a/mobile/src/ui/BoundOptionStrip.js
+++ b/mobile/src/ui/BoundOptionStrip.js
@@ -12,6 +12,7 @@ export class BoundOptionStrip extends React.Component {
options: PropTypes.arrayOf(
PropTypes.shape({ value: PropTypes.string, text: PropTypes.string })
).isRequired,
+ message: PropTypes.string,
}
constructor(props) {
@@ -31,8 +32,8 @@ export class BoundOptionStrip extends React.Component {
}
render() {
- const { name, label, options } = this.props
- const { visible, disabled, value } = this.state
+ const { name, label, options, message } = this.props
+ const { visible, disabled, value, valid } = this.state
return (
+
+ {message}
+
)
}