Skip to content

Commit

Permalink
various component improvements
Browse files Browse the repository at this point in the history
 - useOutbox()
 - support custom <HorizontalView/> props
 - parse fieldset errors
  • Loading branch information
sheppard committed Feb 24, 2021
1 parent fc573c3 commit ca7dcbe
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 12 deletions.
8 changes: 6 additions & 2 deletions packages/material/src/components/HorizontalView.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,13 @@ const useStyles = makeStyles(theme => ({
}
}));

export default function HorizontalView({ children }) {
export default function HorizontalView({ children, ...rest }) {
const classes = useStyles();
return <div className={classes.root}>{children}</div>;
return (
<div className={classes.root} {...rest}>
{children}
</div>
);
}

HorizontalView.propTypes = {
Expand Down
12 changes: 9 additions & 3 deletions packages/material/src/components/HorizontalView.native.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
import React from 'react';
import { View } from 'react-native';
import PropTypes from 'prop-types';

export default function HorizontalView(props) {
export default function HorizontalView({ style, ...rest }) {
return (
<View
style={{
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
padding: 8
padding: 8,
...style
}}
{...props}
{...rest}
/>
);
}

HorizontalView.propTypes = {
style: PropTypes.object
};
7 changes: 6 additions & 1 deletion packages/react/src/components/Form.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,12 @@ function parseApiError(error, values) {
if (!(key in values)) {
key = '__other__';
}
if (!Array.isArray(error)) {
if (Array.isArray(error)) {
// pass
} else if (typeof error === 'object') {
errors[key] = parseApiError(error, values[key] || {});
return;
} else {
error = [error];
}
if (errors[key]) {
Expand Down
14 changes: 11 additions & 3 deletions packages/react/src/components/HorizontalView.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
import React from 'react';
import PropTypes from 'prop-types';

export default function HorizontalView({ children }) {
export default function HorizontalView({ children, style, ...rest }) {
return (
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div
style={{
display: 'flex',
justifyContent: 'space-between',
...style
}}
{...rest}
>
{children}
</div>
);
}

HorizontalView.propTypes = {
children: PropTypes.node
children: PropTypes.node,
style: PropTypes.object
};
13 changes: 10 additions & 3 deletions packages/react/src/hooks.js
Original file line number Diff line number Diff line change
Expand Up @@ -349,13 +349,20 @@ export function useModel(name, filter) {
return useSelector(selector);
}

export function useUnsynced(modelConf) {
export function useOutbox() {
const outbox = useSelector(state => state.offline.outbox) || [],
{
outbox: { filterUnsynced, parseOutbox }
outbox: { parseOutbox }
} = useApp();
return parseOutbox(outbox);
}

return filterUnsynced(parseOutbox(outbox), modelConf);
export function useUnsynced(modelConf) {
const outbox = useOutbox(),
{
outbox: { filterUnsynced }
} = useApp();
return filterUnsynced(outbox, modelConf);
}

export function useList() {
Expand Down

0 comments on commit ca7dcbe

Please sign in to comment.