Releases
v1.3.0
1.3.0 (2024-03-10)
Bug Fixes
add 'handle' to RegisterNewUser form+type+etc (18bf2f8 )
add 'isActiveAccountStore' read, if false nav to /products not /home (a06bb52 )
add 'key' prop to map'd elements (83388dc )
add 'showDialog' to props (944bb23 )
add 'User' prefix to sca fragment to match schema (a159f58 )
add @font-face styles to fix font vertical alignment issues (5e261c5 )
add DOMPurify script integrity sha, update v to 3.0.9 (af6a53a )
add rounding to avg amount stat (3218194 )
add vi calls to mock system time (c353282 )
cache: correct logic for list-query caching+merging (0edd257 )
chart: add min y-axis value to prevent decimal tick-labels (71af378 )
correct .vscode dir ignore pattern (95c616f )
correct err-log logic, rm unused namespaces (340e1fc )
correct FormProps type param handling (874cb90 )
correct playLottie logic to achieve desired play behavior (e375a88 )
correct props typing, add jsdoc (a43121f )
correct style syntax for preferred scroll behavior (3f743eb )
correct styles to achieve desired aesthetic (f968ed8 )
correct svg import syntax to use SVGR ?react suffix (373b96f )
correct syntax for setting default font (0b0dab7 )
ensure 'handleWindowResize' updates context when user-agent changes (9e15ebb )
ensure 'name' doesnt render 'null' str (d535d70 )
ensure 'selectedSubscription' value is init'd on mobile (b95b179 )
ensure className prop is properly handled (ac1b39c )
ensure default viewContact logic is skipped if contact.id matches user (043b1fb )
ensure Intl objs aren't inst'd on each fn call (f6a6be5 )
ensure mobile tabs never show in TABLE view, update a11y props (b6d9939 )
ensure mock item id's don't contain 'CONTACT#' (b997a65 )
ensure SearchUsers query uses ContactFields fragment (92a2333 )
ensure some tick-labels hide on small viewports, add year (6057798 )
ensure TextField value is empty string if nullish (38ed24c )
export all from Buttons (0d24694 )
export raw WO+Inv-related icons for better styling (af312bf )
impl gqlInfo namespace, rm old eslint directives (e780362 )
impl milliseconds for test args (9e68ce1 )
implement safeJsonStringify (17bc2f6 )
improve THEMES typings (0d9bb16 )
mobile-style: ensure page scrolls on mobile (1e40454 )
mocks: update mocks to reflect nullable GQL types (327c467 )
pass 'backgroundIcon' prop into EmptyListFallback (f91f098 )
provide 'onClick' prop to styled container for cursor styling (216a44a )
provide default selectedSub upon checkout in mobile (b1173d0 )
replace 'contacts' query name w 'myContacts' (49e807f )
replace 'mergeUpdate' w shallow-merge to not break Observable (2baa88f )
replace dep'd JSX type namespace with React.JSX (ade9549 )
replace double-quotes w backtick str to ensure proper parsing of newline char (72e300b )
replace inline destructure of apiResponse w conditional key option-chain check (a346969 )
replace JSON.stringify w safeJsonStringify (8e63047 )
rm cache-only fetchPolicy (a9d1f45 )
rm console debug msg from localStorage util (1f1a6da )
rm console.warn block, set default env-var values (c494975 )
rm duplicative export (60f6210 )
rm dynamic import DevModeTools (58e3f05 )
rm extraneous deepCopy util (e16ab80 )
rm Node-env 'captureStackTrace' in PreFetchedItemError (61a87ed )
rm old 'EncodedAuthToken' opaque type (d8db58f )
rm old 'localIndex' Symbol-handling logic (baa8586 )
rm old isItemOwnedByUser nav-state handling (be13d66 )
rm old storage util now in src/stores/ (313cd2c )
rm unnecessary 'extends unknown in DataParser type (f34a145 )
sb: add SelectProps type params to BasicDemo (fdf6554 )
ts: add override ref prop type (249875d )
types: correct ItemDataParser types used to make context values (6bc7ffb )
types: correct reactiveVars typings (b09f7dd )
types: mv 'WorkOrderWithUpcomingEvent' type to this comp (8271b49 )
update calculate.test for ci (a3bf0bb )
update clear-mocks cache-mod to use DELETE sentinel obj (9b5e046 )
update exports to reflect file changes (c78ade4 )
update faker args to reflect pkg update (a371ffc )
update GQL fragments+queries to reflect field changes (364b859 )
update gql import path from '@graphql ' to '@/graphql' (88de3a2 )
update import paths to use '@/*' (90dbb3a )
update import paths to use '@/*' (6f01796 )
update logger timestamps to use Dayjs format-strs (4921b9c )
update logic to add Auth header on req (f8346e9 )
update old jest references to vi (4182577 )
update regex to ensure currency amounts dont begin with 0 (969fb03 )
update stats key from 'TOTAL' to 'SUM' (c1d818e )
update TP exports (de0f108 )
update types exports (6bfd6c5 )
use dayjs for proper timestamp formatting (c235b5f )
Features
a11y: add a11y props 'role' and 'aria-label' (a2ea93b )
add 'craco' for path aliasing (1dd39a6 )
add 'createdAt' and 'updatedAt' fields to AuthTokenPayload (e79ed5a )
add 'deepCopy' util (10107f1 )
add 'ItemDetailsGroup', rm nestability of 'ItemDetails' (dc9e623 )
add 'json' to EOL fixer for Lotties (d742c58 )
add 'license' property (2626069 )
add 'license' property (0685ab9 )
add 'mergeUpdate' override to merge nested props (0e87df1 )
add 'MODE' to 'ENV' object (f7acb26 )
add 'setDefaultIfEmpty' (efe94f9 )
add 'stepContent' classNames to exported obj (32cc139 )
add 'svg' to EOL fixer exclude_types (1012e25 )
add 'tableProps' to core item list views (f1546be )
add 'Tabs' to list of comps exports (65d5e0a )
add 'Tabs' with a11y comps+utils (96e9da5 )
add 'XscrollContainer' for easy horizontal scrolling (6a1b728 )
add 'yupCommonSchema' formUtils (f5bfc05 )
add | SVGElement
to type constraint of T (ce8cf20 )
add ability to pass props to Loading comp (d073b8e )
add abortController for req cancels (4264c83 )
add AddressCardIcon (e02cc33 )
add API_HOSTS_BY_MODE (9b5f61c )
add authenticatedUserStore reactive var (a868cfb )
add Autocomplete,DatePicker,Select,Slider,PWinput (94438e4 )
add axios default 'withCredentials:true' (6a609a2 )
add base StyledChip comp for core-item chips (d15d4ff )
add better prop handling (bfe5882 )
add better prop typing (7e25b3f )
add better typings for authService method params (6d5f282 )
add better typings for MUI theme (3f51933 )
add BrowserTracing to Sentry config (234c0bb )
add btn to open GoogleMaps at location (48d15a8 )
add ButtonLoadingIndicator (36bfec5 )
add ChecklistContainer to comps (e93865a )
add checkoutValues storage token (4217de3 )
add codegen config for gql-related TS types (fae079f )
add codegen types (29681d5 )
add codegen-made files to 'exclude' regex for EOL hook (6672a43 )
add comp exports to Navigation module (f940de0 )
add config param to httpService methods (d6f4a25 )
add CoreItemView layout + WO+Inv+Contact item pages (095eaa5 )
add CoreItemView layout, migrate WOs+INVs item views (337b2dc )
add DataGrid helpers to simplify props formation (b86fbf8 )
add dateTime utils (a5336cf )
add dayjs setup side effect file (39a5a14 )
add dayjs type-safety utils (3e57aa6 )
add default prop showLabel=true for BottomNav Mui Tabs (fde2b4b )
add default props+styles to Mui Tab+Tabs comps (989ad63 )
add DevModeTools (a5b3fea )
add DevTools components (b1d60c5 )
add dir for all DataGrid slots/ (7c7f9cd )
add displayName to ToggleButtonWithTooltip (bd8db3a )
add effect to close popper on esc-press (9c2ed5a )
add env VITE_ENABLE_DEV_TOOLS (007e55e )
add explicit gofixit.app domain+subdomains to traceProp targets (150a39e )
add export of App comp from app/ module (be63651 )
add export of DataDisplay classNames (d2967fb )
add export of static elementIDs for Dialog (fa2acfe )
add exports of DataGrid classNames (88f9be4 )
add exports of Intl.NumberFormat objects (17ae491 )
add exports of new comp dirs (042737d )
add fallback 'themeName' as a safety precaution (2837cd8 )
add FixitUser type, add 'handle' to User+Contact (7b63e98 )
add FormFieldHandlers form util (b2bc0d3 )
add FormView for WOs+Invs+Contacts pages (a922353 )
add fwd ref, rm unused JSX exports (0daf0ce )
add getMuiPaperStyles helper fn (5b15db9 )
add global style for scrollbars via webkit (699836e )
add grid-related Mui system props like 'gridArea' (11b09cc )
add handleAuthRefresh to pageRefresh logic (319daa3 )
add HomePageRoutes and StripeConnect state layer (1aaf6cc )
add https://sentry.io to trusted-types policy (604384c )
add Icons comp dir (9d88a2d )
add ignore '.graphql' to EOL fixer hooks (315d21d )
add impl of ItemsPerMonthChart for INVs (3b42a35 )
add impl of ItemsPerMonthChart for WOs (b46df7e )
add index file to Indicators module (3ab8c71 )
add init selected sub of TRIAL if unset (72f6215 )
add init storage-values to ReactiveStore's with storage (039272c )
add JSON-parseability to stored values that use JSON (a809f07 )
add LeadingDotsSpan comp (d284b51 )
add light/dark variants of secondary+error (b2af180 )
add LinkToWorkOrder nav comp (b13e7b3 )
add ListHeader,CreateItemButton, update CILV (b01090f )
add ListView for WOs+Invs+Contacts pages (32fdc48 )
add ListViewSettingsStore to replace state/reducers (8d1836e )
add localization context wrapper (ae042ec )
add LocalizationProvider (83e4733 )
add lottie-react package (8066350 )
add LottieAnimations comp dir (8ddfe5e )
add LP img assets and Carousel comp (56b01a6 )
add min+max height to header container (87e20c0 )
add more default opts (81971dc )
add Mui x- comp theme aug imports here (6ec791c )
add myInvoices query-type which gets invs' WOs (a105b50 )
add NavLink comp, wraps RRD Link comp (6c4fe9b )
add NoMaxWidthTooltip component (a149eca )
add NON_BREAKING_SPACE_CHAR (931360f )
add NoWrapSpace Text component (f69e74b )
add numeric utils (f05150c )
add open-api codegen script and types (759a476 )
add PageLayoutContext (mobile/desktop layout) (4567fa3 )
add pages/Dashboard (049036b )
add pages/LandingPage (b327723 )
add pages/MobileWebviewStripeBridge (6adbee6 )
add pages/ProfilePage (5c7315a )
add PaymentRequiredToast for 402 error handling (b15abd5 )
add PhoneShapedContainer comp (3bb2537 )
add ProfileView layout + ProfilePage impl (240a2e5 )
add RainbowBorderBox comp (1eaef95 )
add re-export of reactive vars for back-compat path refs (484832d )
add ReceiptShapedContainer comp (95627c4 )
add ref fwd, rm unused JSX exports (185dede )
add ref fwd, rm unused JSX exports (4bac830 )
add ref fwd'ing to link comps for Mui Tooltips (de1d2f2 )
add safeJsonStringify util (76f1b23 )
add SearchUsers component (05ff4cb )
add src/layouts dir (5cde053 )
add static classNames exports (30a0a12 )
add string formatter utils (3ab68f2 )
add styleOverrides for Mui AppBar,Avatar,Chip (ce429ea )
add Tabs,TabPanel to expand upon tab a11y props (92b9447 )
add TermsOfServicePage (fc578f2 )
add Tooltip to Avatar comps, lower css select specificity (9b63388 )
add trustedTypes default policy (37a31d4 )
add typedefs for react-swipeable-views-react-18-fix (cae8ed3 )
add useAppThemeObject hook (14cd65b )
add useHandlePageRefresh to stop refreshes (ce92f02 )
add Vite envs dec, rm Window, update ProcessEnv (345fbbf )
add Vite-built bundle analysis result html file (281d55d )
add WO status chip (b8b67e4 )
add yup setLocale side effect file (9f78fa9 )
add+export types for PLC (4453567 )
bump engines.node to v20 (c163c95 )
centralize Checkout utils in helpers/ (ce540f8 )
centralize List, list-items, virt-list, etc in comps/List (9329831 )
change limit of max toast msgs to 1 from 2 (20e983a )
ci: add 'no-commit-to-branch' hook to forbid pushing to main (5b207fd )
ci: add 'no-commit-to-branch' hook to forbid pushing to main (71d6960 )
ci: add index.html to paths triggering release on PR (6fba07e )
ci: add index.html to paths triggering release on PR (96047ff )
ci: rm PR from events triggering Release Workflow (a03e203 )
ci: set engines.node to '>=16.0.0', set explicit node-version in Test Workflow (4b9b19b )
comps: add re-usable buttons (25b4250 )
comps: add reusable Checklist (083136e )
comps: add reusable DataGrid (62fa389 )
comps: add reusable HelpInfo (499ec18 )
comps: add reusable ItemEventsTimeline (c0854e7 )
comps: add reusable modal comps (45a47cf )
config Sentry to use tunnel '/sentry-proxy' in staging/prod (d146cdc )
enable Apollo dev tools in staging (377cef8 )
enable DevTools in AppBar by default (f161525 )
enable logging 4xx errs in staging (0af7276 )
enable Sentry logging in staging env (60153e8 )
ensure Sentry is only enabled in non-test envs (4700d45 )
export new utils from utils dir (a977108 )
extract CoreItemsListViewContent into own file (fb52fb3 )
extract InvoiceProcessStepper into Stepper comp (dd22b78 )
fix imports, impl Form helpers (9e2c981 )
fix scroll behavior, impl new stores+helpers (e1a7f9d )
gql: rm unused phoneContact files (eb7359e )
html: expand meta tag entries for 'Keywords' and 'Description' (1d14194 )
ignore 'CanceledError' from abortController.abort() invocation (207cd47 )
impl and wrap @nerdware getTypeSafeError (51f3b70 )
impl BaseFormSubmitButton (d2d84cc )
impl codegen'd SubscriptionPriceLabels type (b6bd983 )
impl createBrowserRouter, add routes dict (8cfc1bd )
impl helpers, memoize contextValues (5f99a30 )
impl helpers,constants,stores (abc858e )
impl new helpers and slots (98c7097 )
impl new Tabs comp+helpers, fix props type (78cbfbc )
impl open-api types, add services helpers (c4a67c4 )
impl route-constants, update import paths (235ebc9 )
Invite: add CreateInvite mutation gql def (2a850c3 )
locale: add dayjs localization imports (130b76f )
lower 'autoClose' to 1.2 seconds (7f63867 )
memoize globalStyles, impl new helpers+types (452ca0e )
misc package updates (minor+patch only) (be6f85b )
mv all Form inputs into comps/Form/inputs/ (fc31230 )
mv pages/Invoices/ListView to pages/InvoicesListView, update ListView args (f322b81 )
mv ProtectedRoute comps to navigation dir (86406e0 )
mv setupTests to tests dir, update for Vitest (605f63c )
overhaul CheckoutPage imports,helpers,styles (645ad62 )
overhaul LP to include more product txt+images (c1bf2ea )
overhaul WO item view (853083c )
proliferate ListViewSettings to storage util, core-item list views (05e1a2f )
reduce traces sample rate from 1 to 0.5 (ed54796 )
replace 'cache-only' fetchPolicy w 'network-only' (d81c01e )
replace all direct env-var reads with ENV object (aacefe0 )
replace AuthToken types w codegen'd API types (85d7e8c )
replace CategoryScale w TimeSeriesScale for Dashboard charts (9c7057b )
replace HTTP log lvls from debug to info (665dcd9 )
replace ItemEventsTimeline w flexible Timeline comp (59494f4 )
replace momentjs with dayjs (c6aa7a4 )
replace old StripeCardInput w StripePaymentInput (325a3d4 )
replace PROMO_CODES env-var w api-query input (b276276 )
rm 'draggable' prop (e357c10 )
rm 'pauseOnHover:false' from toast.success (6a1b6c8 )
rm all Webview context,comps,etc (8ff0608 )
rm CanvasGradientBG from LandingPage (1cd8060 )
rm CheckoutContext (replaced w reactive var) (5f8b2db )
rm components/ChecklistContainer (d1977dd )
rm comps/Typography, Mui comps used directly now (5221db5 )
rm deprecated 'NewConnection' possibleTypes (628682f )
rm deprecated Stripe 'bridge pages' (7cc6eb6 )
rm DevNavMenu (9d4105b )
rm DialogButton, place styles in StyledMuiDialog (eb0840d )
rm ExplainerText standalone comp (c61b436 )
rm hasSeenIntroStore (41f1820 )
rm index file to enforce specific imports (45600ff )
rm mocks, prep for pre-release (44de9fd )
rm mv'd FetchState files (now in app/) (14b577a )
rm old 'ListSettingsReactiveStore' type (dac6eeb )
rm old 'routers/' files (now 'routes/') (e35231f )
rm old comps/Inputs (now in Form/inputs) (948c303 )
rm old InvoiceWorkOrderInfo comp (3170f87 )
rm old isItemOwnedByUser nav state (824d953 )
rm old list-item comp (now in comps/List/) (4723072 )
rm old UserAvatar comp (258945c )
rm old utils/logger dir (f708b67 )
rm old virt-list comp (now in comps/List/) (3d874c8 )
rm padding from scroll container (a205ba4 )
rm service-related hooks (f40ea79 )
rm StripeBadge (now in Branding/) (4089c4a )
rm tab helpers (now in comps/Tabs/) (acc0cc4 )
rm tokenFieldsStore (b3d307d )
rm types/UserLogin (open-api types used instead) (f23542a )
rm unused 'Expand' global typedef (26397f4 )
rm unused classNames export (4fbecd6 )
rm unused Form/FileInput comp (fc57a10 )
rm unused util files (32a317f )
rm useEffect, impl route constants (a0b38c4 )
rm useQueryParams hook (8116c7f )
rm utils covered by @nerdware utils pkgs (cf8e2bc )
rm web-vitals (be6a20b )
rm wo w inv fields query (2934b83 )
sb: add PickANumber Select story (5b0770b )
split comps into own files, impl new helpers (2dc574d )
split FormSubmitButton styled comp into own comp (f699132 )
split PageContainer into RootAppLayout, useAuthRefresh, and AppBar (a00b3a7 )
uninstall lodash.merge, rm'd from ReactiveStore (d8e58eb )
update ApolloCache type policies (30bf7e1 )
update ApolloLink links (411452f )
update App structure, add jsdoc (2081bd6 )
update Button (5d4dc06 )
update codegen'd GQL types to reflect current schema (a211de5 )
update codegen'd gql types, add types exports (27c0473 )
update codegen'd types to reflect API changes (ea122a8 )
update comp to provide props req'd for PaymentInput (b56bfc6 )
update components (567c632 )
update Dialog (03766c8 )
update EB to use Sentry, static classNames (ab4053c )
update env vars (ccc9f1c )
update ErrorBoundary (41283c2 )
update Form module exports (401329e )
update GQL local schema file to current (b65dca6 )
update GQL schema for API changes (2259217 )
update GQL schema for API changes (1a35c4e )
update GQL schema for API changes (481ac9e )
update GQL schema used for codegen (d888ab2 )
update hooks (0ae4e1b )
update import paths, impl form+route helpers, rm old styles (b042f03 )
update import paths, rm old styles (fbaca17 )
update imports, impl new helpers (b2f6a2b )
update Indicators (ef63a3d )
update layouts (01e0a8a )
update Logo comps (abed25f )
update packages (5903dd8 )
update page to use new Widgets,helpers,classes (a1ae748 )
update PageNotFound styles,layout (a63432e )
update PageNotFound, add DragonIcon (0cb1b44 )
update pages (9142357 )
update pages/CheckoutPage (ba47c32 )
update pages/LoginPage (602661e )
update pages/PageNotFound (97c6527 )
update pages/PrivacyPolicyPage (9560389 )
update pages/ProductsPage (139eaf1 )
update pages/RegisterPage (7a5bc0b )
update paths to svg files in StripeBadge (6997375 )
update reactive vars (61d61c2 )
update README w project layout (9fbe33e )
update Sentry to use RRv6 int, new config api (ba7eee0 )
update StripeForm (84d2104 )
update types (862b40b )
update Typography comps (e143dec )
update WebView components (37c0a25 )
website-expansion: init commit of 'new' fixit-web pwa files BREAKING_CHANGE (9ad26f2 )
whole new look and better perf for ChecklistInput (5736ec3 )
WIP update BREAKING_CHANGE (c62a505 )
Performance Improvements
http: add link attr's and manifest props to improve load time (c014f44 )
images: replace PNGs w WEBPs, rm unused (f25512b )
rm index file to enforce specific imports for tree-shaking (35171d8 )
rm index files to enforce specific imports for tree-shaking (72f1b43 )
You can’t perform that action at this time.