You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.1 KiB
49 lines
1.1 KiB
import React, { useState } from 'react';
|
|
import { MinusOutlined, PlusOutlined } from '@ant-design/icons';
|
|
import { QRCode, Button } from 'antd';
|
|
|
|
const App: React.FC = () => {
|
|
const [size, setSize] = useState<number>(160);
|
|
|
|
const increase = () => {
|
|
setSize((prevSize) => {
|
|
const newSize = prevSize + 10;
|
|
if (newSize > 300) {
|
|
return 300;
|
|
}
|
|
return newSize;
|
|
});
|
|
};
|
|
|
|
const decline = () => {
|
|
setSize((prevSize) => {
|
|
const newSize = prevSize - 10;
|
|
if (newSize < 48) {
|
|
return 48;
|
|
}
|
|
return newSize;
|
|
});
|
|
};
|
|
|
|
return (
|
|
<>
|
|
<Button.Group style={{ marginBottom: 16 }}>
|
|
<Button onClick={decline} disabled={size <= 48} icon={<MinusOutlined />}>
|
|
Smaller
|
|
</Button>
|
|
<Button onClick={increase} disabled={size >= 300} icon={<PlusOutlined />}>
|
|
Larger
|
|
</Button>
|
|
</Button.Group>
|
|
<QRCode
|
|
errorLevel="H"
|
|
size={size}
|
|
iconSize={size / 4}
|
|
value="https://ant.design/"
|
|
icon="https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg"
|
|
/>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export default App;
|
|
|