Skip to content

Commit 8b2fffb

Browse files
authored
Merge pull request #21 from qoretechnologies/bugfix/fix-allow-disable-object-editor
Updated reqore and fixed passing disabled flag to buttons
2 parents b7d6a39 + c8823b6 commit 8b2fffb

File tree

4 files changed

+132
-11
lines changed

4 files changed

+132
-11
lines changed

package.json

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@qoretechnologies/reqraft",
3-
"version": "0.6.2",
3+
"version": "0.6.3",
44
"description": "ReQraft is a collection of React components and hooks that are used across Qore Technologies' products made using the ReQore component library from Qore.",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",
@@ -53,7 +53,6 @@
5353
"@babel/preset-typescript": "^7.12.7",
5454
"@chromatic-com/storybook": "^1.5.0",
5555
"@netsells/storybook-mockdate": "^0.3.3",
56-
"@qoretechnologies/reqore": "^0.47.3",
5756
"@storybook/addon-actions": "^8.1.7",
5857
"@storybook/addon-essentials": "^8.1.7",
5958
"@storybook/addon-interactions": "^8.1.7",
@@ -102,12 +101,12 @@
102101
"typescript": "^5.4.5"
103102
},
104103
"peerDependencies": {
105-
"@qoretechnologies/reqore": "0.47.2",
106104
"react": "^18.3.1",
107105
"react-dom": "^18.3.1"
108106
},
109107
"dependencies": {
110108
"@tanstack/react-query": "4",
109+
"@qoretechnologies/reqore": "^0.48.3",
111110
"classnames": "^2.2.6",
112111
"cronstrue": "^2.50.0",
113112
"epoch-timeago": "^1.1.9",

src/components/form/fields/object/Object.stories.tsx

+26
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,32 @@ export const List: Story = {
7272
},
7373
};
7474

75+
export const Disabled: Story = {
76+
args: {
77+
type: 'array',
78+
dataType: 'native',
79+
resultDataType: 'native',
80+
disabled: true,
81+
},
82+
};
83+
84+
export const DisabledWithValue: Story = {
85+
args: {
86+
type: 'array',
87+
dataType: 'native',
88+
resultDataType: 'json',
89+
value: [
90+
{
91+
key: 'value',
92+
},
93+
'Test',
94+
12,
95+
false,
96+
],
97+
disabled: true,
98+
},
99+
};
100+
75101
export const NativeOnly: Story = {
76102
args: {
77103
type: 'array',

src/components/form/fields/object/Object.tsx

+13-3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ export interface IReqraftObjectFormFieldProps extends Omit<IReqoreTabsProps, 'on
2121

2222
editorProps?: Omit<IReqoreTreeProps, 'data' | 'onDataChange'>;
2323
textareaProps?: ILongStringFormFieldProps;
24+
25+
disabled?: boolean;
2426
}
2527

2628
export const ReqraftObjectFormFieldTextarea = ({
@@ -81,7 +83,7 @@ export const ReqraftObjectFormFieldTextarea = ({
8183
compact
8284
fluid
8385
intent='success'
84-
disabled={!isValid}
86+
disabled={!isValid || rest.disabled || localValue === value}
8587
onClick={() => {
8688
if (localValue === '' || localValue === undefined) {
8789
onChange(undefined);
@@ -103,7 +105,7 @@ export const ReqraftObjectFormFieldTextarea = ({
103105
icon='HistoryLine'
104106
compact
105107
fixed
106-
disabled={localValue === value}
108+
disabled={localValue === value || rest.disabled}
107109
onClick={() => setValue(value)}
108110
/>
109111
</ReqoreControlGroup>
@@ -201,12 +203,14 @@ export const ReqraftObjectFormField = ({
201203
onClick={() => handleTreeDataChange(type === 'array' ? [] : {})}
202204
fixed
203205
icon='AddLine'
206+
disabled={rest.disabled}
204207
>
205208
New {type === 'array' ? 'List' : 'Object'}
206209
</ReqoreButton>
207210
)}
208211
{treeData && (
209212
<ReqoreTree
213+
disabled={rest.disabled}
210214
data={treeData}
211215
onDataChange={handleTreeDataChange}
212216
editable
@@ -215,13 +219,19 @@ export const ReqraftObjectFormField = ({
215219
/>
216220
)}
217221
{treeData && (
218-
<ReqoreButton onClick={() => handleTreeDataChange(undefined)} fixed icon='CloseLine'>
222+
<ReqoreButton
223+
onClick={() => handleTreeDataChange(undefined)}
224+
fixed
225+
icon='CloseLine'
226+
disabled={rest.disabled}
227+
>
219228
Remove
220229
</ReqoreButton>
221230
)}
222231
</ReqoreTabsContent>
223232
<ReqoreTabsContent tabId='text'>
224233
<ReqraftObjectFormFieldTextarea
234+
disabled={rest.disabled}
225235
{...textareaProps}
226236
value={textData}
227237
onChange={onChange}

yarn.lock

+91-5
Original file line numberDiff line numberDiff line change
@@ -2491,6 +2491,11 @@
24912491
"@jridgewell/resolve-uri" "^3.1.0"
24922492
"@jridgewell/sourcemap-codec" "^1.4.14"
24932493

2494+
"@juggle/resize-observer@^3.4.0":
2495+
version "3.4.0"
2496+
resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60"
2497+
integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==
2498+
24942499
"@mdx-js/react@^3.0.0":
24952500
version "3.0.1"
24962501
resolved "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz"
@@ -2546,10 +2551,10 @@
25462551
resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz"
25472552
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
25482553

2549-
"@qoretechnologies/reqore@^0.47.3":
2550-
version "0.47.3"
2551-
resolved "https://registry.yarnpkg.com/@qoretechnologies/reqore/-/reqore-0.47.3.tgz#e7dd92d333abc904162960e7fa321b8b707fbe22"
2552-
integrity sha512-MnXvO5DLcaY/ZJxWggOtpOGhv1KzG1knWm6oOhwCfSxBv4O9zEM1GFEtAJj4fJY8IBpDqB7VSiTHWSLoByrUVw==
2554+
"@qoretechnologies/reqore@^0.48.3":
2555+
version "0.48.3"
2556+
resolved "https://registry.yarnpkg.com/@qoretechnologies/reqore/-/reqore-0.48.3.tgz#59b505e917f6c4ee762ea633357a8a1365a90811"
2557+
integrity sha512-DMLVVJw8tE3Ni2K3Zk5h87xn5XRDsAaLy1l1u6NaDBWZMhZaqrXzdJMPfm388EjPiFOCtGoVMUBJqvJXkvfQVg==
25532558
dependencies:
25542559
"@internationalized/date" "^3.5.3"
25552560
"@popperjs/core" "^2.11.6"
@@ -2570,6 +2575,9 @@
25702575
react-window "^1.8.6"
25712576
scheduler "^0.23.0"
25722577
shortid "^2.2.16"
2578+
slate "^0.103.0"
2579+
slate-history "^0.100.0"
2580+
slate-react "^0.107.0"
25732581
styled-components "^5.3.6"
25742582
thenby "^1.3.4"
25752583
use-context-selector "^1.4.1"
@@ -5556,6 +5564,11 @@
55565564
resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz"
55575565
integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==
55585566

5567+
"@types/is-hotkey@^0.1.8":
5568+
version "0.1.10"
5569+
resolved "https://registry.yarnpkg.com/@types/is-hotkey/-/is-hotkey-0.1.10.tgz#cf440fab9bf75ffba4e1a16e8df28938de0778c9"
5570+
integrity sha512-RvC8KMw5BCac1NvRRyaHgMMEtBaZ6wh0pyPTBu7izn4Sj/AX9Y4aXU5c7rX8PnM/knsuUpC1IeoBkANtxBypsQ==
5571+
55595572
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
55605573
version "2.0.6"
55615574
resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz"
@@ -5620,6 +5633,11 @@
56205633
resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz"
56215634
integrity sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==
56225635

5636+
"@types/lodash@^4.14.200":
5637+
version "4.17.7"
5638+
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612"
5639+
integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==
5640+
56235641
"@types/mdast@^4.0.0":
56245642
version "4.0.3"
56255643
resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz"
@@ -7199,6 +7217,11 @@ compression@^1.7.4:
71997217
safe-buffer "5.1.2"
72007218
vary "~1.1.2"
72017219

7220+
compute-scroll-into-view@^3.0.2:
7221+
version "3.1.0"
7222+
resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz#753f11d972596558d8fe7c6bcbc8497690ab4c87"
7223+
integrity sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==
7224+
72027225
computed-style@~0.1.3:
72037226
version "0.1.4"
72047227
resolved "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz"
@@ -7755,6 +7778,11 @@ dir-glob@^3.0.1:
77557778
dependencies:
77567779
path-type "^4.0.0"
77577780

7781+
direction@^1.0.4:
7782+
version "1.0.4"
7783+
resolved "https://registry.yarnpkg.com/direction/-/direction-1.0.4.tgz#2b86fb686967e987088caf8b89059370d4837442"
7784+
integrity sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ==
7785+
77587786
doctrine@^2.1.0:
77597787
version "2.1.0"
77607788
resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz"
@@ -9409,6 +9437,11 @@ immediate@~3.0.5:
94099437
resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz"
94109438
integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
94119439

9440+
immer@^10.0.3:
9441+
version "10.1.1"
9442+
resolved "https://registry.yarnpkg.com/immer/-/immer-10.1.1.tgz#206f344ea372d8ea176891545ee53ccc062db7bc"
9443+
integrity sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==
9444+
94129445
import-fresh@^3.2.1:
94139446
version "3.3.0"
94149447
resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
@@ -9664,6 +9697,11 @@ is-hexadecimal@^2.0.0:
96649697
resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz"
96659698
integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==
96669699

9700+
is-hotkey@^0.2.0:
9701+
version "0.2.0"
9702+
resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.2.0.tgz#1835a68171a91e5c9460869d96336947c8340cef"
9703+
integrity sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==
9704+
96679705
is-interactive@^1.0.0:
96689706
version "1.0.0"
96699707
resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz"
@@ -9714,7 +9752,7 @@ is-plain-obj@^4.0.0:
97149752
resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz"
97159753
integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==
97169754

9717-
is-plain-object@5.0.0:
9755+
is-plain-object@5.0.0, is-plain-object@^5.0.0:
97189756
version "5.0.0"
97199757
resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz"
97209758
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
@@ -13181,6 +13219,13 @@ screenfull@^5.1.0:
1318113219
resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz"
1318213220
integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==
1318313221

13222+
scroll-into-view-if-needed@^3.1.0:
13223+
version "3.1.0"
13224+
resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz#fa9524518c799b45a2ef6bbffb92bcad0296d01f"
13225+
integrity sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==
13226+
dependencies:
13227+
compute-scroll-into-view "^3.0.2"
13228+
1318413229
semver-compare@^1.0.0:
1318513230
version "1.0.0"
1318613231
resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz"
@@ -13361,6 +13406,37 @@ slash@^5.0.0, slash@^5.1.0:
1336113406
resolved "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz"
1336213407
integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==
1336313408

13409+
slate-history@^0.100.0:
13410+
version "0.100.0"
13411+
resolved "https://registry.yarnpkg.com/slate-history/-/slate-history-0.100.0.tgz#a8549af61182a18db2dfedff6ebab7452c841666"
13412+
integrity sha512-x5rUuWLNtH97hs9PrFovGgt3Qc5zkTm/5mcUB+0NR/TK923eLax4HsL6xACLHMs245nI6aJElyM1y6hN0y5W/Q==
13413+
dependencies:
13414+
is-plain-object "^5.0.0"
13415+
13416+
slate-react@^0.107.0:
13417+
version "0.107.1"
13418+
resolved "https://registry.yarnpkg.com/slate-react/-/slate-react-0.107.1.tgz#01b38d17745e86b3aab1187ff325f074b7df9096"
13419+
integrity sha512-CDIFzeSkTqwOaFHIxRg4MnOsv0Ml8/PoaWiM5zL5hvDYFqVXQUEhMNQqpPEFTWJ5xVLzEv/rd9N3WloiCyEWYQ==
13420+
dependencies:
13421+
"@juggle/resize-observer" "^3.4.0"
13422+
"@types/is-hotkey" "^0.1.8"
13423+
"@types/lodash" "^4.14.200"
13424+
direction "^1.0.4"
13425+
is-hotkey "^0.2.0"
13426+
is-plain-object "^5.0.0"
13427+
lodash "^4.17.21"
13428+
scroll-into-view-if-needed "^3.1.0"
13429+
tiny-invariant "1.3.1"
13430+
13431+
slate@^0.103.0:
13432+
version "0.103.0"
13433+
resolved "https://registry.yarnpkg.com/slate/-/slate-0.103.0.tgz#deaf1148dd9a2a5a71d4bc71c8005f5468b67079"
13434+
integrity sha512-eCUOVqUpADYMZ59O37QQvUdnFG+8rin0OGQAXNHvHbQeVJ67Bu0spQbcy621vtf8GQUXTEQBlk6OP9atwwob4w==
13435+
dependencies:
13436+
immer "^10.0.3"
13437+
is-plain-object "^5.0.0"
13438+
tiny-warning "^1.0.3"
13439+
1336413440
slide@^1.1.3:
1336513441
version "1.1.6"
1336613442
resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz"
@@ -13951,11 +14027,21 @@ through2@^2.0.3:
1395114027
readable-stream "~2.3.6"
1395214028
xtend "~4.0.1"
1395314029

14030+
tiny-invariant@1.3.1:
14031+
version "1.3.1"
14032+
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642"
14033+
integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==
14034+
1395414035
tiny-invariant@^1.3.1, tiny-invariant@^1.3.3:
1395514036
version "1.3.3"
1395614037
resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz"
1395714038
integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==
1395814039

14040+
tiny-warning@^1.0.3:
14041+
version "1.0.3"
14042+
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
14043+
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
14044+
1395914045
tinycolor2@^1.4.1:
1396014046
version "1.6.0"
1396114047
resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz"

0 commit comments

Comments
 (0)