@homefile/components-v2 2.26.7 → 2.27.0
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.
- package/dist/assets/locales/en/index.json +2 -0
- package/dist/components/forms/dynamicForm/SimpleDynamicForm.d.ts +1 -1
- package/dist/components/forms/dynamicForm/SimpleDynamicForm.js +6 -6
- package/dist/components/forms/dynamicForm/fields/FieldDivider.d.ts +3 -1
- package/dist/components/forms/dynamicForm/fields/FieldDivider.js +2 -2
- package/dist/components/homeItems/HomeItemList.js +7 -8
- package/dist/components/homeItems/HomeItemListHeader.d.ts +2 -0
- package/dist/components/homeItems/HomeItemListHeader.js +3 -0
- package/dist/components/homeItems/HomeItemManualInfo.d.ts +2 -0
- package/dist/components/homeItems/HomeItemManualInfo.js +7 -0
- package/dist/components/homeItems/index.d.ts +3 -0
- package/dist/components/homeItems/index.js +3 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/interfaces/forms/dynamicForm/SimpleDynamicForm.interface.d.ts +4 -0
- package/dist/interfaces/homeItems/HomeItemListHeader.interface.d.ts +5 -0
- package/dist/interfaces/homeItems/HomeItemListHeader.interface.js +1 -0
- package/dist/interfaces/homeItems/index.d.ts +1 -0
- package/dist/interfaces/homeItems/index.js +1 -0
- package/dist/mocks/forms/dynamicForm.mock.d.ts +1 -0
- package/dist/mocks/forms/dynamicForm.mock.js +22 -0
- package/dist/stories/homeItems/HomeItemManualInfo.stories.d.ts +5 -0
- package/dist/stories/homeItems/HomeItemManualInfo.stories.js +20 -0
- package/package.json +1 -1
- package/src/assets/locales/en/index.json +2 -0
- package/src/components/forms/dynamicForm/SimpleDynamicForm.tsx +13 -7
- package/src/components/forms/dynamicForm/fields/FieldDivider.tsx +6 -2
- package/src/components/homeItems/HomeItemList.tsx +18 -19
- package/src/components/homeItems/HomeItemListHeader.tsx +22 -0
- package/src/components/homeItems/HomeItemManualInfo.tsx +24 -0
- package/src/components/homeItems/index.ts +3 -0
- package/src/index.ts +2 -0
- package/src/interfaces/forms/dynamicForm/SimpleDynamicForm.interface.ts +4 -0
- package/src/interfaces/homeItems/HomeItemListHeader.interface.ts +5 -0
- package/src/interfaces/homeItems/index.ts +1 -0
- package/src/mocks/forms/dynamicForm.mock.ts +23 -0
- package/src/stories/homeItems/HomeItemManualInfo.stories.tsx +33 -0
|
@@ -456,6 +456,8 @@
|
|
|
456
456
|
"addDetail": "Add more detail",
|
|
457
457
|
"addDetailsManually": "You can enter item detail manually",
|
|
458
458
|
"itemsFound": "We’ve found {{ count }} items with that serial number.",
|
|
459
|
+
"moreInfo": "We need a bit more information to find your item.",
|
|
460
|
+
"moreDetails": "To find your specific item, we need a few more details.",
|
|
459
461
|
"noneAbove": "None of the above, add more detail",
|
|
460
462
|
"noItemsFound": "We didn’t find your item, but don’t worry!",
|
|
461
463
|
"pleaseSelect": "Please select your item from the list below. This also double confirms your selection.",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { SimpleDynamicFormI } from '../../../interfaces';
|
|
2
|
-
export declare const SimpleDynamicForm: ({ fields }: SimpleDynamicFormI) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const SimpleDynamicForm: ({ dividerStyle, fields, showIcon, height, boxShadow, }: SimpleDynamicFormI) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,8 +2,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Stack } from '@chakra-ui/react';
|
|
3
3
|
import { TextField, SelectField, SwitchField, NumberField, FieldDivider, } from '../..';
|
|
4
4
|
import { fieldIcons } from '../../../helpers';
|
|
5
|
-
export const SimpleDynamicForm = ({ fields }) => {
|
|
6
|
-
return (_jsx(Stack, { bg: "neutral.white", spacing: "0", h:
|
|
5
|
+
export const SimpleDynamicForm = ({ dividerStyle, fields, showIcon = false, height = 'full', boxShadow = 'md', }) => {
|
|
6
|
+
return (_jsx(Stack, { bg: "neutral.white", spacing: "0", h: height, boxShadow: boxShadow, children: fields === null || fields === void 0 ? void 0 : fields.map((field) => {
|
|
7
7
|
const { description, icon, id, name, options, type, value } = field;
|
|
8
8
|
const baseProps = {
|
|
9
9
|
description,
|
|
@@ -14,14 +14,14 @@ export const SimpleDynamicForm = ({ fields }) => {
|
|
|
14
14
|
};
|
|
15
15
|
switch (type) {
|
|
16
16
|
case 'number':
|
|
17
|
-
return (_jsx(FieldDivider, { children: _jsx(NumberField, Object.assign({}, baseProps)) }, id));
|
|
17
|
+
return (_jsx(FieldDivider, { style: dividerStyle, children: _jsx(NumberField, Object.assign({}, baseProps)) }, id));
|
|
18
18
|
case 'text':
|
|
19
19
|
case 'string':
|
|
20
|
-
return (_jsx(FieldDivider, { children: _jsx(TextField, Object.assign({}, baseProps)) }, id));
|
|
20
|
+
return (_jsx(FieldDivider, { style: dividerStyle, children: _jsx(TextField, Object.assign({}, baseProps, { showIcon: showIcon })) }, id));
|
|
21
21
|
case 'select':
|
|
22
|
-
return (_jsx(FieldDivider, { children: _jsx(SelectField, Object.assign({}, baseProps, { options: options })) }, id));
|
|
22
|
+
return (_jsx(FieldDivider, { style: dividerStyle, children: _jsx(SelectField, Object.assign({}, baseProps, { options: options })) }, id));
|
|
23
23
|
case 'switch':
|
|
24
|
-
return (_jsx(FieldDivider, { children: _jsx(SwitchField, Object.assign({}, baseProps)) }, id));
|
|
24
|
+
return (_jsx(FieldDivider, { style: dividerStyle, children: _jsx(SwitchField, Object.assign({}, baseProps)) }, id));
|
|
25
25
|
default:
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
|
-
export declare const FieldDivider: ({ children }: PropsWithChildren<{
|
|
2
|
+
export declare const FieldDivider: ({ children, style, }: PropsWithChildren<{
|
|
3
|
+
style?: string;
|
|
4
|
+
}>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Flex } from '@chakra-ui/react';
|
|
3
|
-
export const FieldDivider = ({ children }) => {
|
|
4
|
-
return (_jsx(Flex, { align: "center", borderBottom: "1px
|
|
3
|
+
export const FieldDivider = ({ children, style = 'solid', }) => {
|
|
4
|
+
return (_jsx(Flex, { align: "center", borderBottom: "1px", borderStyle: style, borderColor: "lightBlue.6", p: "base", children: children }));
|
|
5
5
|
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { t } from 'i18next';
|
|
3
|
-
import { Container, Stack,
|
|
4
|
-
import { RadioCard, BaseCounter } from '..';
|
|
5
|
-
import { ProductRadioCardContent } from './ProductRadioCardContent';
|
|
3
|
+
import { Container, Stack, useRadioGroup } from '@chakra-ui/react';
|
|
4
|
+
import { RadioCard, BaseCounter, ProductRadioCardContent, HomeItemListHeader, } from '..';
|
|
6
5
|
export const HomeItemList = ({ items, onChange }) => {
|
|
7
6
|
const hasItems = items.length > 0;
|
|
8
7
|
const firstItemId = items[0].id;
|
|
@@ -18,11 +17,11 @@ export const HomeItemList = ({ items, onChange }) => {
|
|
|
18
17
|
name: hasItems ? t('homeItems.noneAbove') : t('homeItems.addDetail'),
|
|
19
18
|
},
|
|
20
19
|
];
|
|
21
|
-
return (_jsxs(Container, { h: "full", children: [
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
return (_jsxs(Container, { h: "full", children: [_jsx(HomeItemListHeader, { title: hasItems
|
|
21
|
+
? t('homeItems.itemsFound', { count: items.length })
|
|
22
|
+
: t('homeItems.noItemsFound'), subtitle: hasItems
|
|
23
|
+
? t('homeItems.pleaseSelect')
|
|
24
|
+
: t('homeItems.addDetailsManually') }), _jsxs(Stack, { bg: "lightViolet.1", p: "base", spacing: "base", h: "full", boxShadow: "xl", children: [_jsx(BaseCounter, { text: t('homeItems.showing', {
|
|
26
25
|
count: items.length,
|
|
27
26
|
total: items.length,
|
|
28
27
|
}) }), itemsWithNone.map((item) => {
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Stack, Text } from '@chakra-ui/react';
|
|
3
|
+
export const HomeItemListHeader = ({ title, subtitle, px = '20', }) => (_jsxs(Stack, { align: "center", spacing: "base", px: px, py: "8", boxShadow: "xl", children: [_jsx(Text, { fontSize: "24px", lineHeight: "28px", textAlign: "center", children: title }), _jsx(Text, { fontFamily: "secondary", fontSize: "16px", lineHeight: "20px", textAlign: "center", children: subtitle })] }));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { t } from 'i18next';
|
|
3
|
+
import { Container, Divider } from '@chakra-ui/react';
|
|
4
|
+
import { HomeItemListHeader, SimpleDynamicForm } from '..';
|
|
5
|
+
export const HomeItemManualInfo = ({ fields }) => {
|
|
6
|
+
return (_jsxs(Container, { children: [_jsx(HomeItemListHeader, { title: t('homeItems.moreInfo'), subtitle: t('homeItems.moreDetails'), px: "12" }), _jsx(Divider, { borderStyle: "dashed" }), _jsx(SimpleDynamicForm, { fields: fields, dividerStyle: "dashed", showIcon: true, height: "fit-content", boxShadow: "none" })] }));
|
|
7
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BackendAlert, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EditItemName, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, InboxForwardBanner, InboxTile, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessagePanel, MessageChatPanel, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Notifications, NotificationsReminder, NotificationsPanel, NotificationCard, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RolePermissionsTab, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SectionHeader, SendCommunication, SearchItemLoader, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, ViewContactPanel, VideoPlayer, VideoPlayerModal, WeatherWidget, WellDone, YtdTile, } from './components';
|
|
1
|
+
export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BackendAlert, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EditItemName, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomeItemList, HomeItemManualInfo, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, InboxForwardBanner, InboxTile, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessagePanel, MessageChatPanel, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Notifications, NotificationsReminder, NotificationsPanel, NotificationCard, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RolePermissionsTab, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SectionHeader, SendCommunication, SearchItemLoader, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, ViewContactPanel, VideoPlayer, VideoPlayerModal, WeatherWidget, WellDone, YtdTile, } from './components';
|
|
2
2
|
export { useCustomToast } from './hooks';
|
|
3
3
|
export { randomColor, mapApiObjectToFormFields, mapForecastToWidget, } from './utils';
|
|
4
4
|
export { Contacts, MagnifyingGlassReport, Message, Register, Receipts, Price, BlueFolderShared, Calendar, Create, Notes, } from './assets/images';
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BackendAlert, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EditItemName, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, InboxForwardBanner, InboxTile, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessagePanel, MessageChatPanel, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Notifications, NotificationsReminder, NotificationsPanel, NotificationCard, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RolePermissionsTab, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SectionHeader, SendCommunication, SearchItemLoader, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, ViewContactPanel, VideoPlayer, VideoPlayerModal, WeatherWidget, WellDone, YtdTile, } from './components';
|
|
1
|
+
export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BackendAlert, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EditItemName, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomeItemList, HomeItemManualInfo, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, InboxForwardBanner, InboxTile, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessagePanel, MessageChatPanel, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Notifications, NotificationsReminder, NotificationsPanel, NotificationCard, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RolePermissionsTab, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SectionHeader, SendCommunication, SearchItemLoader, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, ViewContactPanel, VideoPlayer, VideoPlayerModal, WeatherWidget, WellDone, YtdTile, } from './components';
|
|
2
2
|
export { useCustomToast } from './hooks';
|
|
3
3
|
export { randomColor, mapApiObjectToFormFields, mapForecastToWidget, } from './utils';
|
|
4
4
|
export { Contacts, MagnifyingGlassReport, Message, Register, Receipts, Price, BlueFolderShared, Calendar, Create, Notes, } from './assets/images';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1259,3 +1259,25 @@ export const receiptFieldsMock = [
|
|
|
1259
1259
|
icon: 'notes',
|
|
1260
1260
|
},
|
|
1261
1261
|
];
|
|
1262
|
+
export const homeItemDetails = [
|
|
1263
|
+
{
|
|
1264
|
+
id: faker.database.mongodbObjectId(),
|
|
1265
|
+
name: 'Brand and or Manufacturer',
|
|
1266
|
+
description: faker.lorem.sentence(),
|
|
1267
|
+
comments: faker.lorem.sentence(),
|
|
1268
|
+
value: '',
|
|
1269
|
+
type: 'text',
|
|
1270
|
+
visible: true,
|
|
1271
|
+
icon: 'company',
|
|
1272
|
+
},
|
|
1273
|
+
{
|
|
1274
|
+
id: faker.database.mongodbObjectId(),
|
|
1275
|
+
name: 'Serial Number',
|
|
1276
|
+
description: faker.lorem.sentence(),
|
|
1277
|
+
comments: faker.lorem.sentence(),
|
|
1278
|
+
value: '',
|
|
1279
|
+
type: 'text',
|
|
1280
|
+
visible: true,
|
|
1281
|
+
icon: 'barcode',
|
|
1282
|
+
},
|
|
1283
|
+
];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Meta } from '@storybook/react';
|
|
2
|
+
import { SimpleDynamicFormI } from '../../interfaces';
|
|
3
|
+
declare const _default: Meta<SimpleDynamicFormI>;
|
|
4
|
+
export default _default;
|
|
5
|
+
export declare const HomeItemManualInfoComponent: (args: SimpleDynamicFormI) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FormProvider, useForm } from 'react-hook-form';
|
|
3
|
+
import { action } from '@storybook/addon-actions';
|
|
4
|
+
import { DrawerContent } from '@chakra-ui/react';
|
|
5
|
+
import { RightPanel, HomeItemManualInfo } from '../../components';
|
|
6
|
+
import { homeItemDetails } from '../../mocks';
|
|
7
|
+
export default {
|
|
8
|
+
title: 'Components/HomeItems',
|
|
9
|
+
component: HomeItemManualInfo,
|
|
10
|
+
args: {
|
|
11
|
+
fields: homeItemDetails,
|
|
12
|
+
},
|
|
13
|
+
decorators: [
|
|
14
|
+
(Story) => (_jsx(RightPanel, { isOpen: true, onClose: action('onClose'), children: _jsx(DrawerContent, { bg: "lightBlue.1", p: "base", children: _jsx(Story, {}) }) })),
|
|
15
|
+
],
|
|
16
|
+
};
|
|
17
|
+
export const HomeItemManualInfoComponent = (args) => {
|
|
18
|
+
const form = useForm();
|
|
19
|
+
return (_jsx(FormProvider, Object.assign({}, form, { children: _jsx(HomeItemManualInfo, Object.assign({}, args)) })));
|
|
20
|
+
};
|
package/package.json
CHANGED
|
@@ -456,6 +456,8 @@
|
|
|
456
456
|
"addDetail": "Add more detail",
|
|
457
457
|
"addDetailsManually": "You can enter item detail manually",
|
|
458
458
|
"itemsFound": "We’ve found {{ count }} items with that serial number.",
|
|
459
|
+
"moreInfo": "We need a bit more information to find your item.",
|
|
460
|
+
"moreDetails": "To find your specific item, we need a few more details.",
|
|
459
461
|
"noneAbove": "None of the above, add more detail",
|
|
460
462
|
"noItemsFound": "We didn’t find your item, but don’t worry!",
|
|
461
463
|
"pleaseSelect": "Please select your item from the list below. This also double confirms your selection.",
|
|
@@ -9,9 +9,15 @@ import {
|
|
|
9
9
|
} from '@/components'
|
|
10
10
|
import { fieldIcons } from '@/helpers'
|
|
11
11
|
|
|
12
|
-
export const SimpleDynamicForm = ({
|
|
12
|
+
export const SimpleDynamicForm = ({
|
|
13
|
+
dividerStyle,
|
|
14
|
+
fields,
|
|
15
|
+
showIcon = false,
|
|
16
|
+
height = 'full',
|
|
17
|
+
boxShadow = 'md',
|
|
18
|
+
}: SimpleDynamicFormI) => {
|
|
13
19
|
return (
|
|
14
|
-
<Stack bg="neutral.white" spacing="0" h=
|
|
20
|
+
<Stack bg="neutral.white" spacing="0" h={height} boxShadow={boxShadow}>
|
|
15
21
|
{fields?.map((field) => {
|
|
16
22
|
const { description, icon, id, name, options, type, value } = field
|
|
17
23
|
|
|
@@ -25,26 +31,26 @@ export const SimpleDynamicForm = ({ fields }: SimpleDynamicFormI) => {
|
|
|
25
31
|
switch (type) {
|
|
26
32
|
case 'number':
|
|
27
33
|
return (
|
|
28
|
-
<FieldDivider key={id}>
|
|
34
|
+
<FieldDivider key={id} style={dividerStyle}>
|
|
29
35
|
<NumberField {...baseProps} />
|
|
30
36
|
</FieldDivider>
|
|
31
37
|
)
|
|
32
38
|
case 'text':
|
|
33
39
|
case 'string':
|
|
34
40
|
return (
|
|
35
|
-
<FieldDivider key={id}>
|
|
36
|
-
<TextField {...baseProps} />
|
|
41
|
+
<FieldDivider key={id} style={dividerStyle}>
|
|
42
|
+
<TextField {...baseProps} showIcon={showIcon} />
|
|
37
43
|
</FieldDivider>
|
|
38
44
|
)
|
|
39
45
|
case 'select':
|
|
40
46
|
return (
|
|
41
|
-
<FieldDivider key={id}>
|
|
47
|
+
<FieldDivider key={id} style={dividerStyle}>
|
|
42
48
|
<SelectField {...baseProps} options={options} />
|
|
43
49
|
</FieldDivider>
|
|
44
50
|
)
|
|
45
51
|
case 'switch':
|
|
46
52
|
return (
|
|
47
|
-
<FieldDivider key={id}>
|
|
53
|
+
<FieldDivider key={id} style={dividerStyle}>
|
|
48
54
|
<SwitchField {...baseProps} />
|
|
49
55
|
</FieldDivider>
|
|
50
56
|
)
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react'
|
|
2
2
|
import { Flex } from '@chakra-ui/react'
|
|
3
3
|
|
|
4
|
-
export const FieldDivider = ({
|
|
4
|
+
export const FieldDivider = ({
|
|
5
|
+
children,
|
|
6
|
+
style = 'solid',
|
|
7
|
+
}: PropsWithChildren<{ style?: string }>) => {
|
|
5
8
|
return (
|
|
6
9
|
<Flex
|
|
7
10
|
align="center"
|
|
8
|
-
borderBottom="1px
|
|
11
|
+
borderBottom="1px"
|
|
12
|
+
borderStyle={style}
|
|
9
13
|
borderColor="lightBlue.6"
|
|
10
14
|
p="base"
|
|
11
15
|
>
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { t } from 'i18next'
|
|
2
|
-
import { Container, Stack,
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import { Container, Stack, useRadioGroup } from '@chakra-ui/react'
|
|
3
|
+
import {
|
|
4
|
+
RadioCard,
|
|
5
|
+
BaseCounter,
|
|
6
|
+
ProductRadioCardContent,
|
|
7
|
+
HomeItemListHeader,
|
|
8
|
+
} from '@/components'
|
|
5
9
|
import { HomeItemListI } from '@/interfaces'
|
|
6
10
|
|
|
7
11
|
export const HomeItemList = ({ items, onChange }: HomeItemListI) => {
|
|
@@ -23,24 +27,19 @@ export const HomeItemList = ({ items, onChange }: HomeItemListI) => {
|
|
|
23
27
|
|
|
24
28
|
return (
|
|
25
29
|
<Container h="full">
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
<HomeItemListHeader
|
|
31
|
+
title={
|
|
32
|
+
hasItems
|
|
29
33
|
? t('homeItems.itemsFound', { count: items.length })
|
|
30
|
-
: t('homeItems.noItemsFound')
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
fontSize="16px"
|
|
35
|
-
lineHeight="20px"
|
|
36
|
-
textAlign="center"
|
|
37
|
-
>
|
|
38
|
-
{hasItems
|
|
34
|
+
: t('homeItems.noItemsFound')
|
|
35
|
+
}
|
|
36
|
+
subtitle={
|
|
37
|
+
hasItems
|
|
39
38
|
? t('homeItems.pleaseSelect')
|
|
40
|
-
: t('homeItems.addDetailsManually')
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
<Stack bg="lightViolet.1" p="base" spacing="base" h="full">
|
|
39
|
+
: t('homeItems.addDetailsManually')
|
|
40
|
+
}
|
|
41
|
+
/>
|
|
42
|
+
<Stack bg="lightViolet.1" p="base" spacing="base" h="full" boxShadow="xl">
|
|
44
43
|
<BaseCounter
|
|
45
44
|
text={t('homeItems.showing', {
|
|
46
45
|
count: items.length,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Stack, Text } from '@chakra-ui/react'
|
|
2
|
+
import { HomeItemListHeaderI } from '@/interfaces'
|
|
3
|
+
|
|
4
|
+
export const HomeItemListHeader = ({
|
|
5
|
+
title,
|
|
6
|
+
subtitle,
|
|
7
|
+
px = '20',
|
|
8
|
+
}: HomeItemListHeaderI) => (
|
|
9
|
+
<Stack align="center" spacing="base" px={px} py="8" boxShadow="xl">
|
|
10
|
+
<Text fontSize="24px" lineHeight="28px" textAlign="center">
|
|
11
|
+
{title}
|
|
12
|
+
</Text>
|
|
13
|
+
<Text
|
|
14
|
+
fontFamily="secondary"
|
|
15
|
+
fontSize="16px"
|
|
16
|
+
lineHeight="20px"
|
|
17
|
+
textAlign="center"
|
|
18
|
+
>
|
|
19
|
+
{subtitle}
|
|
20
|
+
</Text>
|
|
21
|
+
</Stack>
|
|
22
|
+
)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { t } from 'i18next'
|
|
2
|
+
import { Container, Divider } from '@chakra-ui/react'
|
|
3
|
+
import { HomeItemListHeader, SimpleDynamicForm } from '@/components'
|
|
4
|
+
import { SimpleDynamicFormI } from '@/interfaces'
|
|
5
|
+
|
|
6
|
+
export const HomeItemManualInfo = ({ fields }: SimpleDynamicFormI) => {
|
|
7
|
+
return (
|
|
8
|
+
<Container>
|
|
9
|
+
<HomeItemListHeader
|
|
10
|
+
title={t('homeItems.moreInfo')}
|
|
11
|
+
subtitle={t('homeItems.moreDetails')}
|
|
12
|
+
px="12"
|
|
13
|
+
/>
|
|
14
|
+
<Divider borderStyle="dashed" />
|
|
15
|
+
<SimpleDynamicForm
|
|
16
|
+
fields={fields}
|
|
17
|
+
dividerStyle="dashed"
|
|
18
|
+
showIcon
|
|
19
|
+
height="fit-content"
|
|
20
|
+
boxShadow="none"
|
|
21
|
+
/>
|
|
22
|
+
</Container>
|
|
23
|
+
)
|
|
24
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1286,3 +1286,26 @@ export const receiptFieldsMock: ReportI[] = [
|
|
|
1286
1286
|
icon: 'notes',
|
|
1287
1287
|
},
|
|
1288
1288
|
]
|
|
1289
|
+
|
|
1290
|
+
export const homeItemDetails: ReportI[] = [
|
|
1291
|
+
{
|
|
1292
|
+
id: faker.database.mongodbObjectId(),
|
|
1293
|
+
name: 'Brand and or Manufacturer',
|
|
1294
|
+
description: faker.lorem.sentence(),
|
|
1295
|
+
comments: faker.lorem.sentence(),
|
|
1296
|
+
value: '',
|
|
1297
|
+
type: 'text',
|
|
1298
|
+
visible: true,
|
|
1299
|
+
icon: 'company',
|
|
1300
|
+
},
|
|
1301
|
+
{
|
|
1302
|
+
id: faker.database.mongodbObjectId(),
|
|
1303
|
+
name: 'Serial Number',
|
|
1304
|
+
description: faker.lorem.sentence(),
|
|
1305
|
+
comments: faker.lorem.sentence(),
|
|
1306
|
+
value: '',
|
|
1307
|
+
type: 'text',
|
|
1308
|
+
visible: true,
|
|
1309
|
+
icon: 'barcode',
|
|
1310
|
+
},
|
|
1311
|
+
]
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { FormProvider, useForm } from 'react-hook-form'
|
|
2
|
+
import { Meta } from '@storybook/react'
|
|
3
|
+
import { action } from '@storybook/addon-actions'
|
|
4
|
+
import { DrawerContent } from '@chakra-ui/react'
|
|
5
|
+
import { RightPanel, HomeItemManualInfo } from '@/components'
|
|
6
|
+
import { SimpleDynamicFormI } from '@/interfaces'
|
|
7
|
+
import { homeItemDetails } from '@/mocks'
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
title: 'Components/HomeItems',
|
|
11
|
+
component: HomeItemManualInfo,
|
|
12
|
+
args: {
|
|
13
|
+
fields: homeItemDetails,
|
|
14
|
+
},
|
|
15
|
+
decorators: [
|
|
16
|
+
(Story) => (
|
|
17
|
+
<RightPanel isOpen onClose={action('onClose')}>
|
|
18
|
+
<DrawerContent bg="lightBlue.1" p="base">
|
|
19
|
+
<Story />
|
|
20
|
+
</DrawerContent>
|
|
21
|
+
</RightPanel>
|
|
22
|
+
),
|
|
23
|
+
],
|
|
24
|
+
} as Meta<SimpleDynamicFormI>
|
|
25
|
+
|
|
26
|
+
export const HomeItemManualInfoComponent = (args: SimpleDynamicFormI) => {
|
|
27
|
+
const form = useForm()
|
|
28
|
+
return (
|
|
29
|
+
<FormProvider {...form}>
|
|
30
|
+
<HomeItemManualInfo {...args} />
|
|
31
|
+
</FormProvider>
|
|
32
|
+
)
|
|
33
|
+
}
|