Liquid, JavaScript, themes, sales channels
I have an extension that has 3 TextField components. However, when they are rendered, there is no vertical spacing at all between them. How can I add spacing between them, without using the divider component? I've tried BlockStack, though it didn't seem to work. Here is my current code. Thank you!
import React, { useState, useEffect } from 'react';
import {
useExtensionApi,
render,
TextField,
useApplyAttributeChange,
} from '@shopify/checkout-ui-extensions-react';
render('Checkout::Dynamic::Render', () => <App />);
function App() {
const { extensionPoint } = useExtensionApi();
const [eoriNumber, setEoriNumber] = useState('');
const [vatNumber, setVatNumber] = useState('');
const [kycNumber, setKycNumber] = useState('');
const handleEoriNumberChange = (val) => {
setEoriNumber(val)
}
const handleVatNumberChange = (val) => {
setVatNumber(val)
}
const handleKycNumberChange = (val) => {
setKycNumber(val)
}
const applyAttributeChange = useApplyAttributeChange();
useEffect(() => {
if (eoriNumber) {
// Update the checkout line item with the VAT number attribute
async function updateEoriAttribute() {
let res = await applyAttributeChange({
type: 'updateAttribute',
key: 'eori_number',
value: eoriNumber,
});
}
updateEoriAttribute()
}
if (vatNumber) {
// Update the checkout line item with the VAT number attribute
async function updateVATAttribute() {
let res = await applyAttributeChange({
type: 'updateAttribute',
key: 'vat_number',
value: vatNumber,
});
}
updateVATAttribute()
}
if (kycNumber) {
// Update the checkout line item with the KYC number attribute
async function updateKycAttribute() {
let res = await applyAttributeChange({
type: 'updateAttribute',
key: 'kyc_number',
value: kycNumber,
});
}
updateKycAttribute()
}
}, [eoriNumber, vatNumber, kycNumber, applyAttributeChange]);
return (
<>
<TextField
label="EORI Number (Required in EU)"
name="eori_number"
value={eoriNumber}
onChange={(val) => handleEoriNumberChange(val)}
/>
<TextField
label="VAT Number (Required in EU)"
name="vat_number"
value={vatNumber}
onChange={(val) => handleVatNumberChange(val)}
/>
<TextField
label="KYC Number (Required in India)"
name="kyc_number"
value={kycNumber}
onChange={(val) => handleKycNumberChange(val)}
/>
</>
);
}
Its Artzen Technologies! We will be happy to help you today.
Try this code :-
import React, { useState, useEffect } from 'react';
import {
useExtensionApi,
render,
TextField,
useApplyAttributeChange,
} from '@shopify/checkout-ui-extensions-react';
render('Checkout::Dynamic::Render', () => <App />);
function App() {
const { extensionPoint } = useExtensionApi();
const [eoriNumber, setEoriNumber] = useState('');
const [vatNumber, setVatNumber] = useState('');
const [kycNumber, setKycNumber] = useState('');
const handleEoriNumberChange = (val) => {
setEoriNumber(val);
};
const handleVatNumberChange = (val) => {
setVatNumber(val);
};
const handleKycNumberChange = (val) => {
setKycNumber(val);
};
const applyAttributeChange = useApplyAttributeChange();
useEffect(() => {
// Your existing code for attribute updates
}, [eoriNumber, vatNumber, kycNumber, applyAttributeChange]);
return (
<div style={{ display: 'flex', flexDirection: 'column', gap: '10px' }}>
<TextField
label="EORI Number (Required in EU)"
name="eori_number"
value={eoriNumber}
onChange={(val) => handleEoriNumberChange(val)}
/>
<TextField
label="VAT Number (Required in EU)"
name="vat_number"
value={vatNumber}
onChange={(val) => handleVatNumberChange(val)}
/>
<TextField
label="KYC Number (Required in India)"
name="kyc_number"
value={kycNumber}
onChange={(val) => handleKycNumberChange(val)}
/>
</div>
);
}
Let me know if need further assistance
Regards,
Artzen Technologies
User | RANK |
---|---|
37 | |
28 | |
13 | |
13 | |
9 |
On our Shopify Expert Marketplace, you can find many trusted third party developers and fr...
By Arno Nov 27, 2023You've downloaded the Search & Discovery app from the Shopify App store, and as you're ...
By Skye Nov 8, 2023The year-end shopping season is just around the corner. Is a flash sale on your radar? Are...
By Jasonh Nov 6, 2023