@rpg-engine/long-bow 0.3.70 → 0.3.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +181 -181
  3. package/dist/components/CraftBook/CraftBook.d.ts +2 -1
  4. package/dist/components/Item/Cards/ItemInfo.d.ts +10 -0
  5. package/dist/components/Item/Cards/ItemInfoDisplay.d.ts +9 -0
  6. package/dist/components/Item/Cards/ItemInfoWrapper.d.ts +11 -0
  7. package/dist/components/Item/Cards/ItemTooltip.d.ts +7 -4
  8. package/dist/components/Item/Inventory/ItemContainer.d.ts +2 -1
  9. package/dist/components/Item/Inventory/ItemSlot.d.ts +4 -1
  10. package/dist/components/TradingMenu/TradingItemRow.d.ts +2 -1
  11. package/dist/components/TradingMenu/TradingMenu.d.ts +4 -3
  12. package/dist/components/shared/SpriteFromAtlas.d.ts +1 -0
  13. package/dist/long-bow.cjs.development.js +1220 -951
  14. package/dist/long-bow.cjs.development.js.map +1 -1
  15. package/dist/long-bow.cjs.production.min.js +1 -1
  16. package/dist/long-bow.cjs.production.min.js.map +1 -1
  17. package/dist/long-bow.esm.js +1222 -955
  18. package/dist/long-bow.esm.js.map +1 -1
  19. package/dist/stories/ItemInfoDisplay.stories.d.ts +8 -0
  20. package/dist/stories/TradingMenu.stories.d.ts +2 -2
  21. package/package.json +100 -100
  22. package/src/components/Abstractions/SlotsContainer.tsx +45 -45
  23. package/src/components/Arrow/SelectArrow.tsx +69 -69
  24. package/src/components/Arrow/img/arrow01-left-clicked.png +0 -0
  25. package/src/components/Arrow/img/arrow01-left.png +0 -0
  26. package/src/components/Arrow/img/arrow01-right-clicked.png +0 -0
  27. package/src/components/Arrow/img/arrow01-right.png +0 -0
  28. package/src/components/Arrow/img/arrow02-left-clicked.png +0 -0
  29. package/src/components/Arrow/img/arrow02-left.png +0 -0
  30. package/src/components/Arrow/img/arrow02-right-clicked.png +0 -0
  31. package/src/components/Arrow/img/arrow02-right.png +0 -0
  32. package/src/components/Button.tsx +40 -40
  33. package/src/components/Character/CharacterSelection.tsx +96 -96
  34. package/src/components/CharacterStatus/CharacterStatus.tsx +120 -120
  35. package/src/components/Chat/Chat.tsx +195 -195
  36. package/src/components/Chatdeprecated/ChatDeprecated.tsx +198 -198
  37. package/src/components/CheckButton.tsx +65 -65
  38. package/src/components/CircularController/CircularController.tsx +248 -248
  39. package/src/components/CraftBook/CraftBook.tsx +237 -227
  40. package/src/components/CraftBook/MockItems.ts +41 -46
  41. package/src/components/DraggableContainer.tsx +153 -153
  42. package/src/components/Dropdown.tsx +90 -90
  43. package/src/components/DropdownSelectorContainer.tsx +42 -42
  44. package/src/components/Equipment/EquipmentSet.tsx +190 -190
  45. package/src/components/HistoryDialog.tsx +104 -104
  46. package/src/components/Input.tsx +15 -15
  47. package/src/components/Item/Cards/ItemInfo.tsx +248 -0
  48. package/src/components/Item/Cards/ItemInfoDisplay.tsx +120 -0
  49. package/src/components/Item/Cards/ItemInfoWrapper.tsx +39 -0
  50. package/src/components/Item/Cards/ItemTooltip.tsx +85 -33
  51. package/src/components/Item/Inventory/ErrorBoundary.tsx +42 -42
  52. package/src/components/Item/Inventory/ItemContainer.tsx +214 -210
  53. package/src/components/Item/Inventory/ItemContainerTypes.ts +6 -6
  54. package/src/components/Item/Inventory/ItemQuantitySelector.tsx +138 -138
  55. package/src/components/Item/Inventory/ItemSlot.tsx +512 -501
  56. package/src/components/Item/Inventory/itemContainerHelper.ts +156 -156
  57. package/src/components/ListMenu.tsx +63 -63
  58. package/src/components/Multitab/Tab.tsx +66 -66
  59. package/src/components/Multitab/TabBody.tsx +13 -13
  60. package/src/components/Multitab/TabsContainer.tsx +97 -97
  61. package/src/components/NPCDialog/NPCDialog.tsx +121 -121
  62. package/src/components/NPCDialog/NPCDialogText.tsx +113 -113
  63. package/src/components/NPCDialog/NPCMultiDialog.tsx +159 -159
  64. package/src/components/NPCDialog/QuestionDialog/QuestionDialog.tsx +237 -237
  65. package/src/components/ProgressBar.tsx +92 -92
  66. package/src/components/PropertySelect/PropertySelect.tsx +106 -106
  67. package/src/components/QuestInfo/QuestInfo.tsx +230 -230
  68. package/src/components/QuestList.tsx +129 -129
  69. package/src/components/RPGUIContainer.tsx +47 -47
  70. package/src/components/RPGUIForceRenderStart.tsx +45 -45
  71. package/src/components/RPGUIRoot.tsx +14 -14
  72. package/src/components/RadioButton.tsx +53 -53
  73. package/src/components/RadioInput/RadioButton.tsx +96 -96
  74. package/src/components/RadioInput/RadioInput.tsx +102 -102
  75. package/src/components/RadioInput/instruments.ts +15 -15
  76. package/src/components/RangeSlider.tsx +78 -78
  77. package/src/components/RelativeListMenu.tsx +83 -83
  78. package/src/components/ScrollList.tsx +79 -79
  79. package/src/components/Shortcuts/Shortcuts.tsx +151 -151
  80. package/src/components/Shortcuts/ShortcutsSetter.tsx +132 -132
  81. package/src/components/Shortcuts/SingleShortcut.ts +62 -62
  82. package/src/components/SimpleProgressBar.tsx +62 -62
  83. package/src/components/SkillProgressBar.tsx +133 -133
  84. package/src/components/SkillsContainer.tsx +198 -200
  85. package/src/components/Spellbook/Spell.tsx +201 -201
  86. package/src/components/Spellbook/Spellbook.tsx +150 -150
  87. package/src/components/Spellbook/constants.ts +8 -8
  88. package/src/components/Spellbook/mockSpells.ts +60 -60
  89. package/src/components/StaticBook/StaticBook.tsx +103 -103
  90. package/src/components/TextArea.tsx +11 -11
  91. package/src/components/TimeWidget/DayNightPeriod/DayNightPeriod.tsx +35 -35
  92. package/src/components/TimeWidget/TimeWidget.tsx +63 -63
  93. package/src/components/TradingMenu/TradingItemRow.tsx +195 -181
  94. package/src/components/TradingMenu/TradingMenu.tsx +211 -203
  95. package/src/components/TradingMenu/items.mock.ts +48 -96
  96. package/src/components/Truncate.tsx +25 -25
  97. package/src/components/itemSelector/ItemSelector.tsx +136 -136
  98. package/src/components/shared/Column.tsx +16 -16
  99. package/src/components/shared/Ellipsis.tsx +65 -65
  100. package/src/components/shared/SpriteFromAtlas.tsx +104 -102
  101. package/src/components/typography/DynamicText.tsx +49 -49
  102. package/src/constants/uiColors.ts +20 -20
  103. package/src/constants/uiDevices.ts +3 -3
  104. package/src/constants/uiFonts.ts +12 -12
  105. package/src/hooks/useEventListener.ts +21 -21
  106. package/src/hooks/useOutsideAlerter.ts +25 -25
  107. package/src/index.tsx +40 -40
  108. package/src/libs/StringHelpers.ts +3 -3
  109. package/src/mocks/atlas/entities/entities.json +20215 -20215
  110. package/src/mocks/atlas/icons/icons.json +735 -735
  111. package/src/mocks/atlas/items/items.json +12086 -12086
  112. package/src/mocks/equipmentSet.mocks.ts +391 -393
  113. package/src/mocks/itemContainer.mocks.ts +563 -562
  114. package/src/mocks/skills.mocks.ts +128 -128
  115. package/src/stories/Arrow.stories.tsx +26 -26
  116. package/src/stories/Button.stories.tsx +36 -36
  117. package/src/stories/CharacterSelection.stories.tsx +45 -45
  118. package/src/stories/CharacterStatus.stories.tsx +29 -29
  119. package/src/stories/Chat.stories.tsx +187 -187
  120. package/src/stories/ChatDeprecated.stories.tsx +170 -170
  121. package/src/stories/CheckButton.stories.tsx +48 -48
  122. package/src/stories/CircullarController.stories.tsx +37 -37
  123. package/src/stories/CraftBook.stories.tsx +42 -40
  124. package/src/stories/DayNightPeriod.stories.tsx +27 -27
  125. package/src/stories/DraggableContainer.stories.tsx +28 -28
  126. package/src/stories/Dropdown.stories.tsx +46 -46
  127. package/src/stories/DropdownSelectorContainer.stories.tsx +41 -41
  128. package/src/stories/EquipmentSet.stories.tsx +65 -65
  129. package/src/stories/HistoryDialog.stories.tsx +61 -61
  130. package/src/stories/ItemContainer.stories.tsx +200 -198
  131. package/src/stories/ItemInfoDisplay.stories.tsx +33 -0
  132. package/src/stories/ItemQuantitySelector.stories.tsx +26 -26
  133. package/src/stories/ItemSelector.stories.tsx +77 -77
  134. package/src/stories/ItemTradingComponent.stories.tsx +35 -35
  135. package/src/stories/ListMenu.stories.tsx +56 -56
  136. package/src/stories/Multitab.stories.tsx +51 -51
  137. package/src/stories/NPCDialog.stories.tsx +130 -130
  138. package/src/stories/NPCMultiDialog.stories.tsx +71 -71
  139. package/src/stories/ProgressBar.stories.tsx +23 -23
  140. package/src/stories/PropertySelect.stories.tsx +40 -40
  141. package/src/stories/QuestInfo.stories.tsx +107 -107
  142. package/src/stories/QuestList.stories.tsx +82 -82
  143. package/src/stories/RPGUIContainers.stories.tsx +42 -42
  144. package/src/stories/RadioButton.stories.tsx +49 -49
  145. package/src/stories/RadioInput.stories.tsx +34 -34
  146. package/src/stories/RangeSlider.stories.tsx +64 -64
  147. package/src/stories/ScrollList.stories.tsx +85 -85
  148. package/src/stories/Shortcuts.stories.tsx +39 -39
  149. package/src/stories/SimpleProgressBar.stories.tsx +22 -22
  150. package/src/stories/SkillProgressBar.stories.tsx +34 -34
  151. package/src/stories/SkillsContainer.stories.tsx +35 -35
  152. package/src/stories/Spellbook.stories.tsx +104 -104
  153. package/src/stories/StaticBook.stories.tsx +32 -32
  154. package/src/stories/Text.stories.tsx +42 -42
  155. package/src/stories/TimeWidget.stories.tsx +27 -27
  156. package/src/stories/TradingMenu.stories.tsx +47 -45
  157. package/src/types/eventTypes.ts +4 -4
  158. package/src/types/index.d.ts +2 -2
@@ -1,198 +1,200 @@
1
- import {
2
- IItem,
3
- IShortcut,
4
- ItemContainerType,
5
- ItemType,
6
- ShortcutType,
7
- } from '@rpg-engine/shared';
8
- import { Meta, Story } from '@storybook/react';
9
- import React, { useEffect, useState } from 'react';
10
- import {
11
- IItemContainerProps,
12
- ItemContainer,
13
- } from '../../src/components/Item/Inventory/ItemContainer';
14
- import { RPGUIRoot } from '../../src/components/RPGUIRoot';
15
- import { itemContainerMock } from '../../src/mocks/itemContainer.mocks';
16
- import {
17
- defaultShortcut,
18
- SHORTCUTS_STORAGE_KEY,
19
- } from '../components/Spellbook/constants';
20
- import atlasJSON from '../mocks/atlas/items/items.json';
21
- import atlasIMG from '../mocks/atlas/items/items.png';
22
-
23
- const meta: Meta = {
24
- title: 'Item Container',
25
- component: ItemContainer,
26
- };
27
-
28
- export default meta;
29
-
30
- const onMouseOver = (_event: any, slotIndex: number, item: IItem | null) => {
31
- if (!item) {
32
- // console.log(`Free at ${slotIndex}` )
33
- return;
34
- }
35
- console.log(`${item.name} at ${slotIndex}`);
36
- };
37
-
38
- const onSelected = (payload: string, item: IItem) => {
39
- console.log('onSelected', payload, item);
40
- };
41
-
42
- const onItemClick = (
43
- item: IItem,
44
- ItemType: ItemType,
45
- itemContainerType: ItemContainerType | null
46
- ) => {
47
- console.log(item, ItemType, itemContainerType, 'was clicked!');
48
- };
49
-
50
- // THIS IS ONLY LONG-BOW EXAMPLE FOR DRAG AND DROP
51
- let dragItem: IItem | null = null;
52
- let dropItem: IItem | null = null;
53
- let allowedToDrop = false;
54
- let dragSlot = -1;
55
- let dropSlot = -1;
56
-
57
- const Template: Story<IItemContainerProps> = () => {
58
- const [itemContainer, setItemContainer] = useState(itemContainerMock);
59
- const [shortcuts, setShortcuts] = useState<IShortcut[]>([]);
60
-
61
- useEffect(() => {
62
- const shortcuts = localStorage.getItem(SHORTCUTS_STORAGE_KEY);
63
- if (shortcuts) {
64
- setShortcuts(JSON.parse(shortcuts));
65
- }
66
- }, []);
67
-
68
- const setItemShortcut = (key: string, index: number) => {
69
- const shortcuts = JSON.parse(
70
- localStorage.getItem(SHORTCUTS_STORAGE_KEY) as string
71
- ) as IShortcut[];
72
-
73
- let item: IItem | null = null;
74
-
75
- Object.keys(itemContainer.slots).forEach(slot => {
76
- const slotItem = itemContainer.slots?.[parseInt(slot)];
77
- if (slotItem && slotItem.key === key) {
78
- item = slotItem;
79
- }
80
- });
81
-
82
- if (!item) {
83
- return;
84
- }
85
-
86
- if (!shortcuts) {
87
- const newShortcuts: IShortcut[] = Array(6).fill(defaultShortcut);
88
-
89
- newShortcuts[index] = {
90
- type: ShortcutType.Item,
91
- payload: item,
92
- };
93
-
94
- localStorage.setItem(SHORTCUTS_STORAGE_KEY, JSON.stringify(newShortcuts));
95
- } else {
96
- shortcuts[index] = {
97
- type: ShortcutType.Item,
98
- payload: item,
99
- };
100
-
101
- localStorage.setItem(SHORTCUTS_STORAGE_KEY, JSON.stringify(shortcuts));
102
- }
103
-
104
- setShortcuts(shortcuts);
105
- };
106
-
107
- const removeShortcut = (index: number) => {
108
- const shortcuts = JSON.parse(
109
- localStorage.getItem(SHORTCUTS_STORAGE_KEY) as string
110
- );
111
-
112
- if (!shortcuts) return;
113
-
114
- shortcuts[index] = defaultShortcut;
115
-
116
- localStorage.setItem(SHORTCUTS_STORAGE_KEY, JSON.stringify(shortcuts));
117
-
118
- setShortcuts(shortcuts);
119
- };
120
-
121
- return (
122
- <RPGUIRoot>
123
- <ItemContainer
124
- itemContainer={itemContainer}
125
- onClose={() => console.log('closing item container')}
126
- onMouseOver={onMouseOver}
127
- onSelected={onSelected}
128
- onItemClick={onItemClick}
129
- checkIfItemCanBeMoved={() => allowedToDrop}
130
- onItemDragEnd={quantity => {
131
- // THIS IS ONLY LONG-BOW EXAMPLE FOR DRAG AND DROP
132
-
133
- if (quantity === 0) {
134
- setItemContainer({ ...itemContainer });
135
- } else if (allowedToDrop && dropSlot !== -1) {
136
- const newContainer = { ...itemContainer };
137
-
138
- if (quantity && dragItem && dragItem.stackQty) {
139
- newContainer.slots[dropSlot] = {
140
- ...dragItem,
141
- stackQty: quantity + (dropItem?.stackQty || 0),
142
- };
143
-
144
- if (dragItem.stackQty - quantity === 0)
145
- newContainer.slots[dragSlot] = null;
146
- else
147
- newContainer.slots[dragSlot] = {
148
- ...dragItem,
149
- stackQty: dragItem.stackQty - quantity,
150
- };
151
- } else {
152
- newContainer.slots[dropSlot] = dragItem;
153
- newContainer.slots[dragSlot] = null;
154
- }
155
- setTimeout(() => {
156
- setItemContainer(newContainer);
157
- }, 100);
158
- }
159
-
160
- allowedToDrop = false;
161
- dropSlot = -1;
162
- dropItem = null;
163
- dragItem = null;
164
- }}
165
- onItemDragStart={(item, slotIndex) => {
166
- dragItem = item;
167
- dragSlot = slotIndex;
168
- }}
169
- onItemPlaceDrop={(item, slotIndex) => {
170
- // THIS IS ONLY LONG-BOW EXAMPLE FOR DRAG AND DROP
171
-
172
- if (
173
- !item ||
174
- (dragItem?.key === item?.key && dragSlot !== slotIndex)
175
- ) {
176
- console.log('allow');
177
- allowedToDrop = true;
178
- dropSlot = slotIndex;
179
- dropItem = item ? item : null;
180
- } else {
181
- allowedToDrop = false;
182
- dropSlot = -1;
183
- dropItem = null;
184
- }
185
- }}
186
- onOutsideDrop={(item, pos) => console.log('drop', item, pos)}
187
- type={ItemContainerType.Inventory}
188
- atlasIMG={atlasIMG}
189
- atlasJSON={atlasJSON}
190
- shortcuts={shortcuts}
191
- setItemShortcut={setItemShortcut}
192
- removeShortcut={removeShortcut}
193
- />
194
- </RPGUIRoot>
195
- );
196
- };
197
-
198
- export const Default = Template.bind({});
1
+ import {
2
+ IItem,
3
+ IShortcut,
4
+ ItemContainerType,
5
+ ItemType,
6
+ ShortcutType,
7
+ } from '@rpg-engine/shared';
8
+ import { Meta, Story } from '@storybook/react';
9
+ import React, { useEffect, useState } from 'react';
10
+ import {
11
+ IItemContainerProps,
12
+ ItemContainer,
13
+ } from '../../src/components/Item/Inventory/ItemContainer';
14
+ import { RPGUIRoot } from '../../src/components/RPGUIRoot';
15
+ import { equipmentSetMock } from '../../src/mocks/equipmentSet.mocks';
16
+ import { itemContainerMock } from '../../src/mocks/itemContainer.mocks';
17
+ import {
18
+ defaultShortcut,
19
+ SHORTCUTS_STORAGE_KEY,
20
+ } from '../components/Spellbook/constants';
21
+ import atlasJSON from '../mocks/atlas/items/items.json';
22
+ import atlasIMG from '../mocks/atlas/items/items.png';
23
+
24
+ const meta: Meta = {
25
+ title: 'Item Container',
26
+ component: ItemContainer,
27
+ };
28
+
29
+ export default meta;
30
+
31
+ const onMouseOver = (_event: any, slotIndex: number, item: IItem | null) => {
32
+ if (!item) {
33
+ // console.log(`Free at ${slotIndex}` )
34
+ return;
35
+ }
36
+ console.log(`${item.name} at ${slotIndex}`);
37
+ };
38
+
39
+ const onSelected = (payload: string, item: IItem) => {
40
+ console.log('onSelected', payload, item);
41
+ };
42
+
43
+ const onItemClick = (
44
+ item: IItem,
45
+ ItemType: ItemType,
46
+ itemContainerType: ItemContainerType | null
47
+ ) => {
48
+ console.log(item, ItemType, itemContainerType, 'was clicked!');
49
+ };
50
+
51
+ // THIS IS ONLY LONG-BOW EXAMPLE FOR DRAG AND DROP
52
+ let dragItem: IItem | null = null;
53
+ let dropItem: IItem | null = null;
54
+ let allowedToDrop = false;
55
+ let dragSlot = -1;
56
+ let dropSlot = -1;
57
+
58
+ const Template: Story<IItemContainerProps> = () => {
59
+ const [itemContainer, setItemContainer] = useState(itemContainerMock);
60
+ const [shortcuts, setShortcuts] = useState<IShortcut[]>([]);
61
+
62
+ useEffect(() => {
63
+ const shortcuts = localStorage.getItem(SHORTCUTS_STORAGE_KEY);
64
+ if (shortcuts) {
65
+ setShortcuts(JSON.parse(shortcuts));
66
+ }
67
+ }, []);
68
+
69
+ const setItemShortcut = (key: string, index: number) => {
70
+ const shortcuts = JSON.parse(
71
+ localStorage.getItem(SHORTCUTS_STORAGE_KEY) as string
72
+ ) as IShortcut[];
73
+
74
+ let item: IItem | null = null;
75
+
76
+ Object.keys(itemContainer.slots).forEach(slot => {
77
+ const slotItem = itemContainer.slots?.[parseInt(slot)];
78
+ if (slotItem && slotItem.key === key) {
79
+ item = slotItem;
80
+ }
81
+ });
82
+
83
+ if (!item) {
84
+ return;
85
+ }
86
+
87
+ if (!shortcuts) {
88
+ const newShortcuts: IShortcut[] = Array(6).fill(defaultShortcut);
89
+
90
+ newShortcuts[index] = {
91
+ type: ShortcutType.Item,
92
+ payload: item,
93
+ };
94
+
95
+ localStorage.setItem(SHORTCUTS_STORAGE_KEY, JSON.stringify(newShortcuts));
96
+ } else {
97
+ shortcuts[index] = {
98
+ type: ShortcutType.Item,
99
+ payload: item,
100
+ };
101
+
102
+ localStorage.setItem(SHORTCUTS_STORAGE_KEY, JSON.stringify(shortcuts));
103
+ }
104
+
105
+ setShortcuts(shortcuts);
106
+ };
107
+
108
+ const removeShortcut = (index: number) => {
109
+ const shortcuts = JSON.parse(
110
+ localStorage.getItem(SHORTCUTS_STORAGE_KEY) as string
111
+ );
112
+
113
+ if (!shortcuts) return;
114
+
115
+ shortcuts[index] = defaultShortcut;
116
+
117
+ localStorage.setItem(SHORTCUTS_STORAGE_KEY, JSON.stringify(shortcuts));
118
+
119
+ setShortcuts(shortcuts);
120
+ };
121
+
122
+ return (
123
+ <RPGUIRoot>
124
+ <ItemContainer
125
+ itemContainer={itemContainer}
126
+ onClose={() => console.log('closing item container')}
127
+ onMouseOver={onMouseOver}
128
+ onSelected={onSelected}
129
+ onItemClick={onItemClick}
130
+ checkIfItemCanBeMoved={() => allowedToDrop}
131
+ onItemDragEnd={quantity => {
132
+ // THIS IS ONLY LONG-BOW EXAMPLE FOR DRAG AND DROP
133
+
134
+ if (quantity === 0) {
135
+ setItemContainer({ ...itemContainer });
136
+ } else if (allowedToDrop && dropSlot !== -1) {
137
+ const newContainer = { ...itemContainer };
138
+
139
+ if (quantity && dragItem && dragItem.stackQty) {
140
+ newContainer.slots[dropSlot] = {
141
+ ...dragItem,
142
+ stackQty: quantity + (dropItem?.stackQty || 0),
143
+ };
144
+
145
+ if (dragItem.stackQty - quantity === 0)
146
+ newContainer.slots[dragSlot] = null;
147
+ else
148
+ newContainer.slots[dragSlot] = {
149
+ ...dragItem,
150
+ stackQty: dragItem.stackQty - quantity,
151
+ };
152
+ } else {
153
+ newContainer.slots[dropSlot] = dragItem;
154
+ newContainer.slots[dragSlot] = null;
155
+ }
156
+ setTimeout(() => {
157
+ setItemContainer(newContainer);
158
+ }, 100);
159
+ }
160
+
161
+ allowedToDrop = false;
162
+ dropSlot = -1;
163
+ dropItem = null;
164
+ dragItem = null;
165
+ }}
166
+ onItemDragStart={(item, slotIndex) => {
167
+ dragItem = item;
168
+ dragSlot = slotIndex;
169
+ }}
170
+ onItemPlaceDrop={(item, slotIndex) => {
171
+ // THIS IS ONLY LONG-BOW EXAMPLE FOR DRAG AND DROP
172
+
173
+ if (
174
+ !item ||
175
+ (dragItem?.key === item?.key && dragSlot !== slotIndex)
176
+ ) {
177
+ console.log('allow');
178
+ allowedToDrop = true;
179
+ dropSlot = slotIndex;
180
+ dropItem = item ? item : null;
181
+ } else {
182
+ allowedToDrop = false;
183
+ dropSlot = -1;
184
+ dropItem = null;
185
+ }
186
+ }}
187
+ onOutsideDrop={(item, pos) => console.log('drop', item, pos)}
188
+ type={ItemContainerType.Inventory}
189
+ atlasIMG={atlasIMG}
190
+ atlasJSON={atlasJSON}
191
+ shortcuts={shortcuts}
192
+ setItemShortcut={setItemShortcut}
193
+ removeShortcut={removeShortcut}
194
+ equipmentSet={equipmentSetMock}
195
+ />
196
+ </RPGUIRoot>
197
+ );
198
+ };
199
+
200
+ export const Default = Template.bind({});
@@ -0,0 +1,33 @@
1
+ import { Story } from '@storybook/react';
2
+ import React from 'react';
3
+ import {
4
+ IItemInfoDisplayProps,
5
+ ItemInfoDisplay,
6
+ } from '../components/Item/Cards/ItemInfoDisplay';
7
+ import { RPGUIRoot } from '../components/RPGUIRoot';
8
+ import atlasJSON from '../mocks/atlas/items/items.json';
9
+ import atlasIMG from '../mocks/atlas/items/items.png';
10
+ import { equipmentSetMock } from '../mocks/equipmentSet.mocks';
11
+ import { items } from '../mocks/itemContainer.mocks';
12
+
13
+ export default {
14
+ title: 'Item info',
15
+ component: ItemInfoDisplay,
16
+ };
17
+
18
+ const Template: Story<IItemInfoDisplayProps> = args => (
19
+ <RPGUIRoot>
20
+ <div style={{ margin: '2rem' }}>
21
+ <ItemInfoDisplay {...args} />
22
+ </div>
23
+ </RPGUIRoot>
24
+ );
25
+
26
+ export const Default = Template.bind({});
27
+
28
+ Default.args = {
29
+ item: items[0],
30
+ atlasIMG: atlasIMG,
31
+ atlasJSON: atlasJSON,
32
+ equipmentSet: equipmentSetMock,
33
+ };
@@ -1,26 +1,26 @@
1
- import { Meta, Story } from '@storybook/react';
2
- import React from 'react';
3
- import { RPGUIRoot } from '..';
4
- import {
5
- IItemQuantitySelectorProps,
6
- ItemQuantitySelector,
7
- } from '../components/Item/Inventory/ItemQuantitySelector';
8
-
9
- const meta: Meta = {
10
- title: 'Item Quantity Selector',
11
- component: ItemQuantitySelector,
12
- };
13
-
14
- export default meta;
15
-
16
- const Template: Story<IItemQuantitySelectorProps> = args => (
17
- <RPGUIRoot>
18
- <ItemQuantitySelector {...args} />
19
- </RPGUIRoot>
20
- );
21
-
22
- export const Default = Template.bind({});
23
-
24
- Default.args = {
25
- quantity: 10,
26
- };
1
+ import { Meta, Story } from '@storybook/react';
2
+ import React from 'react';
3
+ import { RPGUIRoot } from '..';
4
+ import {
5
+ IItemQuantitySelectorProps,
6
+ ItemQuantitySelector,
7
+ } from '../components/Item/Inventory/ItemQuantitySelector';
8
+
9
+ const meta: Meta = {
10
+ title: 'Item Quantity Selector',
11
+ component: ItemQuantitySelector,
12
+ };
13
+
14
+ export default meta;
15
+
16
+ const Template: Story<IItemQuantitySelectorProps> = args => (
17
+ <RPGUIRoot>
18
+ <ItemQuantitySelector {...args} />
19
+ </RPGUIRoot>
20
+ );
21
+
22
+ export const Default = Template.bind({});
23
+
24
+ Default.args = {
25
+ quantity: 10,
26
+ };
@@ -1,77 +1,77 @@
1
- import { Meta, Story } from '@storybook/react';
2
- import React from 'react';
3
- import { RPGUIRoot } from '..';
4
- import {
5
- IOptionsItemSelectorProps,
6
- ItemSelector,
7
- } from '../components/itemSelector/ItemSelector';
8
- import atlasJSON from '../mocks/atlas/items/items.json';
9
- import atlasIMG from '../mocks/atlas/items/items.png';
10
-
11
- const meta: Meta = {
12
- title: 'Item Selector',
13
- component: ItemSelector,
14
- };
15
-
16
- export default meta;
17
-
18
- const Template: Story = args => (
19
- <RPGUIRoot>
20
- <ItemSelector
21
- atlasIMG={atlasIMG}
22
- atlasJSON={atlasJSON}
23
- options={options}
24
- onSelect={onSelect}
25
- onClose={() => console.log('closing Equipment Set Container')}
26
- {...args}
27
- />
28
- </RPGUIRoot>
29
- );
30
-
31
- export const Default = Template.bind({});
32
-
33
- const onSelect = (value: string): void => {
34
- console.log('Story package', value);
35
- };
36
-
37
- const options: IOptionsItemSelectorProps[] = [
38
- {
39
- name: 'Human',
40
- description: 'Human',
41
- imageKey: 'axes/frost-double-axe.png',
42
- },
43
- {
44
- name: 'Human',
45
- description: 'Human',
46
- imageKey: 'maces/spiked-club.png',
47
- },
48
- {
49
- name: 'Human2',
50
- description: 'Human2',
51
- imageKey: 'axes/frost-double-axe.png',
52
- },
53
- {
54
- name: 'Human3',
55
- description: 'Human3',
56
- imageKey: 'maces/spiked-club.png',
57
- },
58
- {
59
- name: 'Human4',
60
- description: 'Human4',
61
- imageKey: 'axes/frost-double-axe.png',
62
- },
63
- {
64
- name: 'Human5',
65
- description: 'Human5',
66
- imageKey: 'maces/spiked-club.png',
67
- },
68
- {
69
- name: 'Human6',
70
- description: 'Human6',
71
- imageKey: 'axes/frost-double-axe.png',
72
- },
73
- ];
74
-
75
- Default.args = {
76
- options,
77
- };
1
+ import { Meta, Story } from '@storybook/react';
2
+ import React from 'react';
3
+ import { RPGUIRoot } from '..';
4
+ import {
5
+ IOptionsItemSelectorProps,
6
+ ItemSelector,
7
+ } from '../components/itemSelector/ItemSelector';
8
+ import atlasJSON from '../mocks/atlas/items/items.json';
9
+ import atlasIMG from '../mocks/atlas/items/items.png';
10
+
11
+ const meta: Meta = {
12
+ title: 'Item Selector',
13
+ component: ItemSelector,
14
+ };
15
+
16
+ export default meta;
17
+
18
+ const Template: Story = args => (
19
+ <RPGUIRoot>
20
+ <ItemSelector
21
+ atlasIMG={atlasIMG}
22
+ atlasJSON={atlasJSON}
23
+ options={options}
24
+ onSelect={onSelect}
25
+ onClose={() => console.log('closing Equipment Set Container')}
26
+ {...args}
27
+ />
28
+ </RPGUIRoot>
29
+ );
30
+
31
+ export const Default = Template.bind({});
32
+
33
+ const onSelect = (value: string): void => {
34
+ console.log('Story package', value);
35
+ };
36
+
37
+ const options: IOptionsItemSelectorProps[] = [
38
+ {
39
+ name: 'Human',
40
+ description: 'Human',
41
+ imageKey: 'axes/frost-double-axe.png',
42
+ },
43
+ {
44
+ name: 'Human',
45
+ description: 'Human',
46
+ imageKey: 'maces/spiked-club.png',
47
+ },
48
+ {
49
+ name: 'Human2',
50
+ description: 'Human2',
51
+ imageKey: 'axes/frost-double-axe.png',
52
+ },
53
+ {
54
+ name: 'Human3',
55
+ description: 'Human3',
56
+ imageKey: 'maces/spiked-club.png',
57
+ },
58
+ {
59
+ name: 'Human4',
60
+ description: 'Human4',
61
+ imageKey: 'axes/frost-double-axe.png',
62
+ },
63
+ {
64
+ name: 'Human5',
65
+ description: 'Human5',
66
+ imageKey: 'maces/spiked-club.png',
67
+ },
68
+ {
69
+ name: 'Human6',
70
+ description: 'Human6',
71
+ imageKey: 'axes/frost-double-axe.png',
72
+ },
73
+ ];
74
+
75
+ Default.args = {
76
+ options,
77
+ };