From 091ada9934701421d18ab4f05b8894d393bc9288 Mon Sep 17 00:00:00 2001 From: Jexsie Date: Thu, 20 Jul 2023 19:53:18 +0300 Subject: [PATCH] update width for inputs --- .../field/address/address-field.component.tsx | 36 +++++++++++++------ .../address/address-search.component.tsx | 4 +++ .../field/dob/dob.component.tsx | 2 ++ .../src/patient-registration/field/field.scss | 22 ++++++++++-- .../field/gender/gender-field.component.tsx | 1 + .../basic-input/input/input.component.tsx | 5 +++ .../autosuggest/autosuggest.component.tsx | 4 ++- .../custom-input/autosuggest/autosuggest.scss | 4 +++ .../identifier/identifier-input.component.tsx | 9 ++--- .../dummy-data/dummy-data-input.component.tsx | 7 ++-- .../src/patient-registration/input/input.scss | 6 ++++ .../patient-registration.component.tsx | 2 +- .../relationships-section.component.tsx | 10 ++++-- .../patient-relationships/relationships.scss | 18 +++++----- .../section/section-wrapper.component.tsx | 8 +++-- 15 files changed, 105 insertions(+), 33 deletions(-) diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/address/address-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/address/address-field.component.tsx index 3a329d9b2..1b5c6e18c 100644 --- a/packages/esm-patient-registration-app/src/patient-registration/field/address/address-field.component.tsx +++ b/packages/esm-patient-registration-app/src/patient-registration/field/address/address-field.component.tsx @@ -27,6 +27,7 @@ export const AddressComponent: React.FC = () => { name: string; value: string; label: string; + maxCount: number; }> >([]); const { t } = useTranslation(); @@ -50,7 +51,16 @@ export const AddressComponent: React.FC = () => { useEffect(() => { const templateXmlDoc = parseString(addressTemplateXml); const elementDefaults = getTagAsDocument('elementDefaults', templateXmlDoc); + const maxCountEntries = getTagAsDocument('sizeMappings', templateXmlDoc).getElementsByTagName('entry'); const defaultValuesEntries = elementDefaults.getElementsByTagName('entry'); + + const maxCounts = Object.fromEntries( + Array.prototype.map.call(maxCountEntries, (entry: Element) => { + const [name, value] = Array.from(entry.getElementsByTagName('string')); + return [name.innerHTML, value.innerHTML]; + }), + ); + const defaultValues = Object.fromEntries( Array.prototype.map.call(defaultValuesEntries, (entry: Element) => { const [name, value] = Array.from(entry.getElementsByTagName('string')); @@ -79,6 +89,7 @@ export const AddressComponent: React.FC = () => { t('countyDistrict', 'District') */ const value = defaultValues[name]; + const maxCountValue = Number(maxCounts[name]); setInitialFormValues((initialFormValues) => ({ ...initialFormValues, address: { @@ -91,6 +102,7 @@ export const AddressComponent: React.FC = () => { name, value, label, + maxCount: maxCountValue, }; }); setAddressLayout(propertiesObj); @@ -119,16 +131,19 @@ export const AddressComponent: React.FC = () => { if (!enabled) { return ( - {addressLayout.map((attributes, index) => ( - - ))} + {addressLayout.map((attributes, index) => { + return ( + + ); + })} ); } @@ -167,6 +182,7 @@ export const AddressComponent: React.FC = () => { labelText={t(attributes.label)} id={attributes.name} setSelectedValue={setSelectedValue} + maxLength={attributes.maxCount} selected={selected} /> )) diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/address/address-search.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/address/address-search.component.tsx index ca967a179..0c327823e 100644 --- a/packages/esm-patient-registration-app/src/patient-registration/field/address/address-search.component.tsx +++ b/packages/esm-patient-registration-app/src/patient-registration/field/address/address-search.component.tsx @@ -3,6 +3,7 @@ import { useAddressHierarchy } from '../../patient-registration.resource'; import { Search } from '@carbon/react'; import { useTranslation } from 'react-i18next'; import { useFormikContext } from 'formik'; +import { useLayoutType } from '@openmrs/esm-framework'; import styles from './address-search.scss'; interface AddressSearchComponentProps { @@ -14,6 +15,7 @@ const AddressSearchComponent: React.FC = ({ address const separator = ' > '; const searchBox = useRef(null); const wrapper = useRef(null); + const isTablet = useLayoutType() === 'tablet'; const [searchString, setSearchString] = useState(''); const { addresses, isLoading, error } = useAddressHierarchy(searchString, separator); const addressOptions: Array = useMemo(() => { @@ -62,6 +64,8 @@ const AddressSearchComponent: React.FC = ({ address return (
{ {
{ {fieldConfigs.map((option) => ( = ({ checkWarning, ...props }) => { const [field, meta] = useField(props.name); const { t } = useTranslation(); + const isTablet = useLayoutType() === 'tablet'; /* Do not remove these comments @@ -44,6 +47,7 @@ export const Input: React.FC = ({ checkWarning, ...props }) => {
= ({ checkWarning, ...props }) => { invalidText={invalidText} warn={!!warnText} warnText={warnText} + size={isTablet ? 'lg' : 'md'} value={value} /> diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/autosuggest/autosuggest.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/autosuggest/autosuggest.component.tsx index 32e733a95..7d1fe7bcb 100644 --- a/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/autosuggest/autosuggest.component.tsx +++ b/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/autosuggest/autosuggest.component.tsx @@ -11,6 +11,7 @@ interface AutosuggestProps extends SearchProps { } export const Autosuggest: React.FC = ({ + isTablet, getDisplayValue, getFieldValue, getSearchResults, @@ -62,6 +63,7 @@ export const Autosuggest: React.FC = ({ = ({ /> {suggestions.length > 0 && ( -
    +
      {suggestions.map((suggestion, index) => (
    • = ({ patientIdentifier, fieldName }) => { const { t } = useTranslation(); + const isTablet = useLayoutType() === 'tablet'; const { defaultPatientIdentifierTypes } = useConfig(); const { identifierTypes } = useContext(ResourcesContext); const { isOffline, values, setFieldValue } = useContext(PatientRegistrationContext); @@ -114,7 +115,7 @@ export const IdentifierInput: React.FC = ({ patientIdentif {!patientIdentifier.required && patientIdentifier.initialValue && hideInputField && ( + ); }; diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/input.scss b/packages/esm-patient-registration-app/src/patient-registration/input/input.scss index 10a7e2e5f..5a5f3a24a 100644 --- a/packages/esm-patient-registration-app/src/patient-registration/input/input.scss +++ b/packages/esm-patient-registration-app/src/patient-registration/input/input.scss @@ -99,6 +99,8 @@ :global(.omrs-breakpoint-lt-desktop) { .IDInput { max-width: unset; + display: flex; + gap: 0.25rem; width: 100%; } } @@ -116,3 +118,7 @@ margin: 0; padding-left: 1rem; } + +.Input { + max-width: 300px; +} diff --git a/packages/esm-patient-registration-app/src/patient-registration/patient-registration.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/patient-registration.component.tsx index 1b32c5295..6d8301496 100644 --- a/packages/esm-patient-registration-app/src/patient-registration/patient-registration.component.tsx +++ b/packages/esm-patient-registration-app/src/patient-registration/patient-registration.component.tsx @@ -193,7 +193,7 @@ export const PatientRegistration: React.FC = ({ savePa disabled={!currentSession || !identifierTypes}> {inEditMode ? t('updatePatient', 'Update Patient') : t('registerPatient', 'Register Patient')} -
diff --git a/packages/esm-patient-registration-app/src/patient-registration/section/patient-relationships/relationships-section.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/section/patient-relationships/relationships-section.component.tsx index 3634218a1..c05c38ef1 100644 --- a/packages/esm-patient-registration-app/src/patient-registration/section/patient-relationships/relationships-section.component.tsx +++ b/packages/esm-patient-registration-app/src/patient-registration/section/patient-relationships/relationships-section.component.tsx @@ -7,6 +7,7 @@ import { InlineNotification, NotificationActionButton, SkeletonText, + Tile, } from '@carbon/react'; import { TrashCan } from '@carbon/react/icons'; import { FieldArray } from 'formik'; @@ -16,6 +17,7 @@ import { PatientRegistrationContext } from '../../patient-registration-context'; import { ResourcesContext } from '../../../offline.resources'; import { fetchPerson } from '../../patient-registration.resource'; import { RelationshipValue } from '../../patient-registration-types'; +import { useLayoutType } from '@openmrs/esm-framework'; import sectionStyles from '../section.scss'; import styles from './relationships.scss'; @@ -116,6 +118,7 @@ const RelationshipView: React.FC = ({ }) => { const { t } = useTranslation(); const { setFieldValue } = React.useContext(PatientRegistrationContext); + const isTablet = useLayoutType() === 'tablet'; const newRelationship = !relationship.uuid; @@ -156,7 +159,7 @@ const RelationshipView: React.FC = ({ }, [index]); return relationship.action !== 'DELETE' ? ( -
+

@@ -181,6 +184,7 @@ const RelationshipView: React.FC = ({ getSearchResults={searchPerson} getDisplayValue={(item) => item.display} getFieldValue={(item) => item.uuid} + isTablet={isTablet} required /> ) : ( @@ -195,6 +199,8 @@ const RelationshipView: React.FC = ({

-
+
) : (
- + {sectionDefinition.id === 'relationships' ? (
- + ) : ( + +
+ + )}
);