@salesforce/webapp-template-app-react-sample-b2e-experimental 1.81.0 → 1.83.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/.a4drules/skills/webapp-csp-trusted-sites/SKILL.md +90 -0
- package/dist/.a4drules/skills/webapp-csp-trusted-sites/implementation/metadata-format.md +281 -0
- package/dist/.a4drules/skills/{webapp-add-react-component → webapp-react-add-component}/SKILL.md +1 -1
- package/dist/.a4drules/skills/webapp-react-data-visualization/SKILL.md +72 -0
- package/dist/.a4drules/skills/webapp-react-data-visualization/implementation/dashboard-layout.md +189 -0
- package/dist/.a4drules/skills/webapp-react-data-visualization/implementation/donut-chart.md +181 -0
- package/dist/.a4drules/skills/webapp-react-data-visualization/implementation/stat-card.md +150 -0
- package/dist/.a4drules/skills/webapp-react-interactive-map/SKILL.md +92 -0
- package/dist/.a4drules/skills/webapp-react-interactive-map/implementation/geocoding.md +245 -0
- package/dist/.a4drules/skills/webapp-react-interactive-map/implementation/leaflet-map.md +279 -0
- package/dist/.a4drules/skills/webapp-react-weather-widget/SKILL.md +65 -0
- package/dist/.a4drules/skills/webapp-react-weather-widget/implementation/weather-hook.md +258 -0
- package/dist/.a4drules/skills/webapp-react-weather-widget/implementation/weather-ui.md +216 -0
- package/dist/.a4drules/skills/webapp-ui-ux/SKILL.md +268 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/charts.csv +26 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/colors.csv +97 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/icons.csv +101 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/landing.csv +31 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/products.csv +97 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/react-performance.csv +45 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/stacks/html-tailwind.csv +56 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/stacks/react.csv +54 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/stacks/shadcn.csv +61 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/styles.csv +68 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/typography.csv +58 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/ui-reasoning.csv +101 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/ux-guidelines.csv +100 -0
- package/dist/.a4drules/skills/webapp-ui-ux/data/web-interface.csv +31 -0
- package/dist/.a4drules/skills/webapp-ui-ux/scripts/core.js +255 -0
- package/dist/.a4drules/skills/webapp-ui-ux/scripts/design_system.js +861 -0
- package/dist/.a4drules/skills/webapp-ui-ux/scripts/search.js +98 -0
- package/dist/.a4drules/skills/webapp-unsplash-images/SKILL.md +71 -0
- package/dist/.a4drules/skills/webapp-unsplash-images/implementation/usage.md +159 -0
- package/dist/.a4drules/webapp-no-node-e.md +54 -15
- package/dist/.a4drules/webapp-react.md +9 -10
- package/dist/.a4drules/webapp-skills-first.md +26 -0
- package/dist/.a4drules/webapp.md +8 -0
- package/dist/CHANGELOG.md +19 -0
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/package.json +4 -4
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/api/applications.ts +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/api/dashboard.ts +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/api/maintenance.ts +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/api/maintenanceWorkers.ts +2 -2
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/api/properties.ts +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/appLayout.tsx +2 -2
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/ApplicationCard.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/ApplicationDetailsModal.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/ApplicationsTable.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/ListPageFilters.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/MaintenanceDetailsModal.tsx +2 -2
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/MaintenanceRequestCard.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/MaintenanceTable.tsx +2 -2
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/PropertyCard.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/PropertyDetailsModal.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/TopBar.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/VerticalNav.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/dashboard/GlobalSearchBar.tsx +2 -2
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/filters/FilterFieldRange.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/filters/FilterFieldSelect.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/filters/ListPageFilterRow.tsx +3 -3
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/list/ListPageWithFilters.tsx +5 -5
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/hooks/useListPage.ts +4 -4
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/lib/applicationAdapter.ts +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/lib/fieldMappers.ts +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/lib/globalSearchConstants.ts +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/lib/listPageConfig.ts +9 -9
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/lib/maintenanceAdapter.ts +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/lib/maintenanceWorkerAdapter.ts +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/lib/propertyAdapter.ts +1 -1
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/pages/Applications.tsx +8 -8
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/pages/Home.tsx +13 -13
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/pages/Maintenance.tsx +9 -9
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/pages/MaintenanceWorkers.tsx +6 -6
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/pages/Properties.tsx +15 -15
- package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/routes.tsx +1 -1
- package/dist/package.json +1 -1
- package/package.json +3 -3
- package/dist/.a4drules/webapp-images.md +0 -15
- /package/dist/.a4drules/skills/{webapp-add-react-component → webapp-react-add-component}/implementation/component.md +0 -0
- /package/dist/.a4drules/skills/{webapp-add-react-component → webapp-react-add-component}/implementation/header-footer.md +0 -0
- /package/dist/.a4drules/skills/{webapp-add-react-component → webapp-react-add-component}/implementation/page.md +0 -0
- /package/dist/.a4drules/{webapp-code-quality.md → webapp-react-code-quality.md} +0 -0
- /package/dist/.a4drules/{webapp-typescript.md → webapp-react-typescript.md} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { useNavigate } from "react-router";
|
|
3
|
-
import { PATHS } from "../lib/routeConfig
|
|
3
|
+
import { PATHS } from "../lib/routeConfig";
|
|
4
4
|
import { Card } from "./ui/card";
|
|
5
5
|
import { Button } from "./ui/button";
|
|
6
|
-
import type { MaintenanceRequest } from "../lib/types
|
|
6
|
+
import type { MaintenanceRequest } from "../lib/types";
|
|
7
7
|
import PlumbingIcon from "../assets/icons/plumbing.svg";
|
|
8
8
|
import HVACIcon from "../assets/icons/hvac.svg";
|
|
9
9
|
import ElectricalIcon from "../assets/icons/electrical.svg";
|
package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/TopBar.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useEffect, useState } from "react";
|
|
2
2
|
import { Search, Bell, ChevronDown, Menu } from "lucide-react";
|
|
3
3
|
import zenLogo from "../assets/icons/zen-logo.svg";
|
|
4
|
-
import { getUserInfo } from "../api/dashboard
|
|
4
|
+
import { getUserInfo } from "../api/dashboard";
|
|
5
5
|
|
|
6
6
|
interface TopBarProps {
|
|
7
7
|
onMenuClick?: () => void;
|
package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/components/VerticalNav.tsx
CHANGED
|
@@ -5,7 +5,7 @@ import filesIcon from "../assets/icons/files.svg";
|
|
|
5
5
|
import propertiesIcon from "../assets/icons/properties.svg";
|
|
6
6
|
import maintenanceIcon from "../assets/icons/maintenance.svg";
|
|
7
7
|
import maintenanceWorkerIcon from "../assets/icons/maintenance-worker.svg";
|
|
8
|
-
import { PATHS } from "../lib/routeConfig
|
|
8
|
+
import { PATHS } from "../lib/routeConfig";
|
|
9
9
|
|
|
10
10
|
interface NavItem {
|
|
11
11
|
path: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ObjectInfoResult } from "../../features/global-search/types/objectInfo/objectInfo
|
|
2
|
-
import type { SearchableObjectConfig } from "../../lib/globalSearchConstants
|
|
1
|
+
import type { ObjectInfoResult } from "../../features/global-search/types/objectInfo/objectInfo";
|
|
2
|
+
import type { SearchableObjectConfig } from "../../lib/globalSearchConstants";
|
|
3
3
|
import {
|
|
4
4
|
Select,
|
|
5
5
|
SelectContent,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Filter } from "../../features/global-search/types/filters/filters";
|
|
2
|
-
import { getRangeMinKey, getRangeMaxKey } from "../../lib/filterUtils
|
|
2
|
+
import { getRangeMinKey, getRangeMaxKey } from "../../lib/filterUtils";
|
|
3
3
|
|
|
4
4
|
const inputClass =
|
|
5
5
|
"h-9 px-3 rounded-md border border-gray-300 bg-white text-sm focus:outline-none focus:ring-2 focus:ring-purple-500 focus:border-transparent w-20";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { Filter } from "../../features/global-search/types/filters/filters";
|
|
3
|
-
import { ALL_PLACEHOLDER_VALUE, MULTI_VALUE_SEP } from "../../lib/filterUtils
|
|
3
|
+
import { ALL_PLACEHOLDER_VALUE, MULTI_VALUE_SEP } from "../../lib/filterUtils";
|
|
4
4
|
import {
|
|
5
5
|
Select,
|
|
6
6
|
SelectContent,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Filter } from "../../features/global-search/types/filters/filters";
|
|
2
|
-
import { FilterFieldRange } from "./FilterFieldRange
|
|
3
|
-
import { FilterFieldSelect } from "./FilterFieldSelect
|
|
4
|
-
import { FilterFieldText } from "./FilterFieldText
|
|
2
|
+
import { FilterFieldRange } from "./FilterFieldRange";
|
|
3
|
+
import { FilterFieldSelect } from "./FilterFieldSelect";
|
|
4
|
+
import { FilterFieldText } from "./FilterFieldText";
|
|
5
5
|
|
|
6
6
|
/** Compatible with feature picklist option shape (label/value). */
|
|
7
7
|
interface PicklistOption {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { Filter } from "../../features/global-search/types/filters/filters";
|
|
3
|
-
import { PageContainer } from "../layout/PageContainer
|
|
4
|
-
import { PageLoadingState } from "../feedback/PageLoadingState
|
|
5
|
-
import { PageErrorState } from "../feedback/PageErrorState
|
|
6
|
-
import { FilterErrorAlert } from "../feedback/FilterErrorAlert
|
|
7
|
-
import { ListPageFilterRow } from "../filters/ListPageFilterRow
|
|
3
|
+
import { PageContainer } from "../layout/PageContainer";
|
|
4
|
+
import { PageLoadingState } from "../feedback/PageLoadingState";
|
|
5
|
+
import { PageErrorState } from "../feedback/PageErrorState";
|
|
6
|
+
import { FilterErrorAlert } from "../feedback/FilterErrorAlert";
|
|
7
|
+
import { ListPageFilterRow } from "../filters/ListPageFilterRow";
|
|
8
8
|
|
|
9
9
|
/** Compatible with feature picklist option shape. */
|
|
10
10
|
interface PicklistOption {
|
package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/hooks/useListPage.ts
CHANGED
|
@@ -3,14 +3,14 @@ import { useSearchParams } from "react-router";
|
|
|
3
3
|
import { useObjectListMetadata } from "../features/global-search/hooks/useObjectSearchData";
|
|
4
4
|
import type { FilterCriteria } from "../features/global-search/types/filters/filters";
|
|
5
5
|
import { useRecordListGraphQL } from "../features/global-search/hooks/useRecordListGraphQL";
|
|
6
|
-
import { PAGE_SIZE_LIST } from "../lib/constants
|
|
6
|
+
import { PAGE_SIZE_LIST } from "../lib/constants";
|
|
7
7
|
import {
|
|
8
8
|
buildFilterCriteriaFromFormValues,
|
|
9
9
|
getDefaultFilterFormValues,
|
|
10
10
|
getApplicableFilters,
|
|
11
|
-
} from "../lib/filterUtils
|
|
12
|
-
import { useAccumulatedListPages } from "./useAccumulatedListPages
|
|
13
|
-
import type { ListPageConfig } from "../lib/listPageConfig
|
|
11
|
+
} from "../lib/filterUtils";
|
|
12
|
+
import { useAccumulatedListPages } from "./useAccumulatedListPages";
|
|
13
|
+
import type { ListPageConfig } from "../lib/listPageConfig";
|
|
14
14
|
|
|
15
15
|
/** Picklist option shape from useObjectListMetadata (label/value). */
|
|
16
16
|
export interface PicklistOption {
|
package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/lib/fieldMappers.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Maps Salesforce API field paths (from getObjectListFilters) to our app record properties.
|
|
3
3
|
* Used by applyFilterCriteria when filtering list data with FilterCriteria from the feature API.
|
|
4
4
|
*/
|
|
5
|
-
import type { Property, MaintenanceRequest, Application } from "./types
|
|
5
|
+
import type { Property, MaintenanceRequest, Application } from "./types";
|
|
6
6
|
|
|
7
7
|
const PROPERTY_FIELD_MAP: Record<string, (p: Property) => string | number | undefined> = {
|
|
8
8
|
Name: (p) => p.name,
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
FALLBACK_LABEL_MAINTENANCE_PLURAL,
|
|
8
8
|
FALLBACK_LABEL_MAINTENANCE_WORKERS_PLURAL,
|
|
9
9
|
FALLBACK_LABEL_APPLICATIONS_PLURAL,
|
|
10
|
-
} from "./constants
|
|
10
|
+
} from "./constants";
|
|
11
11
|
|
|
12
12
|
export const GLOBAL_SEARCH_OBJECT_API_NAME = "Property__c" as const;
|
|
13
13
|
export const MAINTENANCE_OBJECT_API_NAME = "Maintenance_Request__c" as const;
|
package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/lib/listPageConfig.ts
CHANGED
|
@@ -6,19 +6,19 @@ import {
|
|
|
6
6
|
MAINTENANCE_OBJECT_API_NAME,
|
|
7
7
|
MAINTENANCE_WORKER_OBJECT_API_NAME,
|
|
8
8
|
APPLICATION_OBJECT_API_NAME,
|
|
9
|
-
} from "./globalSearchConstants
|
|
10
|
-
import { getMaintenanceColumns } from "./maintenanceColumns
|
|
11
|
-
import { getMaintenanceWorkerColumns } from "./maintenanceWorkerColumns
|
|
12
|
-
import { getApplicationListColumns } from "./applicationColumns
|
|
9
|
+
} from "./globalSearchConstants";
|
|
10
|
+
import { getMaintenanceColumns } from "./maintenanceColumns";
|
|
11
|
+
import { getMaintenanceWorkerColumns } from "./maintenanceWorkerColumns";
|
|
12
|
+
import { getApplicationListColumns } from "./applicationColumns";
|
|
13
13
|
import {
|
|
14
14
|
MAINTENANCE_FILTER_EXCLUDED_FIELD_PATHS,
|
|
15
15
|
MAINTENANCE_WORKER_FILTER_EXCLUDED_FIELD_PATHS,
|
|
16
16
|
APPLICATION_FILTER_EXCLUDED_FIELD_PATHS,
|
|
17
|
-
} from "./constants
|
|
18
|
-
import { nodeToMaintenanceRequest } from "./maintenanceAdapter
|
|
19
|
-
import { nodeToMaintenanceWorker } from "./maintenanceWorkerAdapter
|
|
20
|
-
import { nodeToApplication } from "./applicationAdapter
|
|
21
|
-
import type { MaintenanceRequest, MaintenanceWorker, Application } from "./types
|
|
17
|
+
} from "./constants";
|
|
18
|
+
import { nodeToMaintenanceRequest } from "./maintenanceAdapter";
|
|
19
|
+
import { nodeToMaintenanceWorker } from "./maintenanceWorkerAdapter";
|
|
20
|
+
import { nodeToApplication } from "./applicationAdapter";
|
|
21
|
+
import type { MaintenanceRequest, MaintenanceWorker, Application } from "./types";
|
|
22
22
|
|
|
23
23
|
export interface ListPageConfig<T> {
|
|
24
24
|
objectApiName: string;
|
package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/pages/Applications.tsx
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
|
-
import { useListPage } from "../hooks/useListPage
|
|
3
|
-
import { applicationsListConfig } from "../lib/listPageConfig
|
|
4
|
-
import { ListPageWithFilters } from "../components/list/ListPageWithFilters
|
|
5
|
-
import { PageHeader } from "../components/layout/PageHeader
|
|
6
|
-
import { ApplicationsTable } from "../components/ApplicationsTable
|
|
7
|
-
import { ApplicationDetailsModal } from "../components/ApplicationDetailsModal
|
|
8
|
-
import { updateApplicationStatus } from "../api/applications
|
|
9
|
-
import type { Application } from "../lib/types
|
|
2
|
+
import { useListPage } from "../hooks/useListPage";
|
|
3
|
+
import { applicationsListConfig } from "../lib/listPageConfig";
|
|
4
|
+
import { ListPageWithFilters } from "../components/list/ListPageWithFilters";
|
|
5
|
+
import { PageHeader } from "../components/layout/PageHeader";
|
|
6
|
+
import { ApplicationsTable } from "../components/ApplicationsTable";
|
|
7
|
+
import { ApplicationDetailsModal } from "../components/ApplicationDetailsModal";
|
|
8
|
+
import { updateApplicationStatus } from "../api/applications";
|
|
9
|
+
import type { Application } from "../lib/types";
|
|
10
10
|
|
|
11
11
|
export default function Applications() {
|
|
12
12
|
const list = useListPage(applicationsListConfig);
|
|
@@ -3,24 +3,24 @@ import { useNavigate } from "react-router";
|
|
|
3
3
|
import { useRecordListGraphQL } from "../features/global-search/hooks/useRecordListGraphQL";
|
|
4
4
|
import { useObjectInfoBatch } from "../features/global-search/hooks/useObjectInfoBatch";
|
|
5
5
|
import { useObjectListMetadata } from "../features/global-search/hooks/useObjectSearchData";
|
|
6
|
-
import { IssuesDonutChart } from "../components/IssuesDonutChart
|
|
7
|
-
import { MaintenanceTable } from "../components/MaintenanceTable
|
|
8
|
-
import { GlobalSearchBar } from "../components/dashboard/GlobalSearchBar
|
|
9
|
-
import { StatCard } from "../components/StatCard
|
|
10
|
-
import { PageContainer } from "../components/layout/PageContainer
|
|
11
|
-
import { PageLoadingState } from "../components/feedback/PageLoadingState
|
|
12
|
-
import { getDashboardMetrics, calculateMetrics } from "../api/dashboard
|
|
13
|
-
import type { DashboardMetrics, MaintenanceRequest } from "../lib/types
|
|
6
|
+
import { IssuesDonutChart } from "../components/IssuesDonutChart";
|
|
7
|
+
import { MaintenanceTable } from "../components/MaintenanceTable";
|
|
8
|
+
import { GlobalSearchBar } from "../components/dashboard/GlobalSearchBar";
|
|
9
|
+
import { StatCard } from "../components/StatCard";
|
|
10
|
+
import { PageContainer } from "../components/layout/PageContainer";
|
|
11
|
+
import { PageLoadingState } from "../components/feedback/PageLoadingState";
|
|
12
|
+
import { getDashboardMetrics, calculateMetrics } from "../api/dashboard";
|
|
13
|
+
import type { DashboardMetrics, MaintenanceRequest } from "../lib/types";
|
|
14
14
|
import {
|
|
15
15
|
GLOBAL_SEARCH_OBJECT_API_NAME,
|
|
16
16
|
SEARCHABLE_OBJECTS,
|
|
17
17
|
MAINTENANCE_OBJECT_API_NAME,
|
|
18
18
|
type SearchableObjectConfig,
|
|
19
|
-
} from "../lib/globalSearchConstants
|
|
20
|
-
import { getMaintenanceColumns } from "../lib/maintenanceColumns
|
|
21
|
-
import { nodeToMaintenanceRequest } from "../lib/maintenanceAdapter
|
|
22
|
-
import { DASHBOARD_MAINTENANCE_LIMIT } from "../lib/constants
|
|
23
|
-
import { PATHS } from "../lib/routeConfig
|
|
19
|
+
} from "../lib/globalSearchConstants";
|
|
20
|
+
import { getMaintenanceColumns } from "../lib/maintenanceColumns";
|
|
21
|
+
import { nodeToMaintenanceRequest } from "../lib/maintenanceAdapter";
|
|
22
|
+
import { DASHBOARD_MAINTENANCE_LIMIT } from "../lib/constants";
|
|
23
|
+
import { PATHS } from "../lib/routeConfig";
|
|
24
24
|
|
|
25
25
|
const CHART_ISSUE_TYPES = ["Plumbing", "HVAC", "Electrical", "Appliance", "Pest"] as const;
|
|
26
26
|
const CHART_COLORS = ["#7C3AED", "#EC4899", "#14B8A6", "#06B6D4", "#F59E0B"] as const;
|
package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/pages/Maintenance.tsx
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
2
|
import { ChevronDown } from "lucide-react";
|
|
3
|
-
import { useListPage } from "../hooks/useListPage
|
|
4
|
-
import { maintenanceRequestsListConfig } from "../lib/listPageConfig
|
|
5
|
-
import { ListPageWithFilters } from "../components/list/ListPageWithFilters
|
|
6
|
-
import { PageHeader } from "../components/layout/PageHeader
|
|
7
|
-
import { UserAvatar } from "../components/UserAvatar
|
|
8
|
-
import { StatusBadge } from "../components/StatusBadge
|
|
9
|
-
import { MaintenanceDetailsModal } from "../components/MaintenanceDetailsModal
|
|
10
|
-
import { updateMaintenanceStatus } from "../api/maintenance
|
|
11
|
-
import type { MaintenanceRequest } from "../lib/types
|
|
3
|
+
import { useListPage } from "../hooks/useListPage";
|
|
4
|
+
import { maintenanceRequestsListConfig } from "../lib/listPageConfig";
|
|
5
|
+
import { ListPageWithFilters } from "../components/list/ListPageWithFilters";
|
|
6
|
+
import { PageHeader } from "../components/layout/PageHeader";
|
|
7
|
+
import { UserAvatar } from "../components/UserAvatar";
|
|
8
|
+
import { StatusBadge } from "../components/StatusBadge";
|
|
9
|
+
import { MaintenanceDetailsModal } from "../components/MaintenanceDetailsModal";
|
|
10
|
+
import { updateMaintenanceStatus } from "../api/maintenance";
|
|
11
|
+
import type { MaintenanceRequest } from "../lib/types";
|
|
12
12
|
import PlumbingIcon from "../assets/icons/plumbing.svg";
|
|
13
13
|
import HVACIcon from "../assets/icons/hvac.svg";
|
|
14
14
|
import ElectricalIcon from "../assets/icons/electrical.svg";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useState, useEffect, useMemo } from "react";
|
|
2
|
-
import { useListPage } from "../hooks/useListPage
|
|
3
|
-
import { maintenanceWorkersListConfig } from "../lib/listPageConfig
|
|
4
|
-
import { ListPageWithFilters } from "../components/list/ListPageWithFilters
|
|
5
|
-
import { PageHeader } from "../components/layout/PageHeader
|
|
6
|
-
import { getAllMaintenanceRequests } from "../api/maintenance
|
|
7
|
-
import type { MaintenanceWorker } from "../lib/types
|
|
2
|
+
import { useListPage } from "../hooks/useListPage";
|
|
3
|
+
import { maintenanceWorkersListConfig } from "../lib/listPageConfig";
|
|
4
|
+
import { ListPageWithFilters } from "../components/list/ListPageWithFilters";
|
|
5
|
+
import { PageHeader } from "../components/layout/PageHeader";
|
|
6
|
+
import { getAllMaintenanceRequests } from "../api/maintenance";
|
|
7
|
+
import type { MaintenanceWorker } from "../lib/types";
|
|
8
8
|
|
|
9
9
|
export default function MaintenanceWorkers() {
|
|
10
10
|
const list = useListPage(maintenanceWorkersListConfig);
|
package/dist/force-app/main/default/webapplications/appreactsampleb2e/src/pages/Properties.tsx
CHANGED
|
@@ -4,25 +4,25 @@ import { type FilterCriteria } from "../features/global-search/types/filters/fil
|
|
|
4
4
|
import { useObjectListMetadata } from "../features/global-search/hooks/useObjectSearchData";
|
|
5
5
|
import { useRecordListGraphQL } from "../features/global-search/hooks/useRecordListGraphQL";
|
|
6
6
|
|
|
7
|
-
import type { Property } from "../lib/types
|
|
8
|
-
import { PropertyCard } from "../components/PropertyCard
|
|
9
|
-
import { PropertyDetailsModal } from "../components/PropertyDetailsModal
|
|
10
|
-
import { PageContainer } from "../components/layout/PageContainer
|
|
11
|
-
import { PageHeader } from "../components/layout/PageHeader
|
|
12
|
-
import { PageLoadingState } from "../components/feedback/PageLoadingState
|
|
13
|
-
import { PageErrorState } from "../components/feedback/PageErrorState
|
|
14
|
-
import { FilterErrorAlert } from "../components/feedback/FilterErrorAlert
|
|
15
|
-
import { ListPageFilterRow } from "../components/filters/ListPageFilterRow
|
|
16
|
-
import { GLOBAL_SEARCH_OBJECT_API_NAME } from "../lib/globalSearchConstants
|
|
17
|
-
import { nodeToProperty } from "../lib/propertyAdapter
|
|
18
|
-
import { getPropertyListColumns } from "../lib/propertyColumns
|
|
7
|
+
import type { Property } from "../lib/types";
|
|
8
|
+
import { PropertyCard } from "../components/PropertyCard";
|
|
9
|
+
import { PropertyDetailsModal } from "../components/PropertyDetailsModal";
|
|
10
|
+
import { PageContainer } from "../components/layout/PageContainer";
|
|
11
|
+
import { PageHeader } from "../components/layout/PageHeader";
|
|
12
|
+
import { PageLoadingState } from "../components/feedback/PageLoadingState";
|
|
13
|
+
import { PageErrorState } from "../components/feedback/PageErrorState";
|
|
14
|
+
import { FilterErrorAlert } from "../components/feedback/FilterErrorAlert";
|
|
15
|
+
import { ListPageFilterRow } from "../components/filters/ListPageFilterRow";
|
|
16
|
+
import { GLOBAL_SEARCH_OBJECT_API_NAME } from "../lib/globalSearchConstants";
|
|
17
|
+
import { nodeToProperty } from "../lib/propertyAdapter";
|
|
18
|
+
import { getPropertyListColumns } from "../lib/propertyColumns";
|
|
19
19
|
import {
|
|
20
20
|
buildFilterCriteriaFromFormValues,
|
|
21
21
|
getDefaultFilterFormValues,
|
|
22
22
|
getApplicableFilters,
|
|
23
|
-
} from "../lib/filterUtils
|
|
24
|
-
import { PAGE_SIZE_LIST, PROPERTY_FILTER_EXCLUDED_FIELD_PATHS } from "../lib/constants
|
|
25
|
-
import { useAccumulatedListPages } from "../hooks/useAccumulatedListPages
|
|
23
|
+
} from "../lib/filterUtils";
|
|
24
|
+
import { PAGE_SIZE_LIST, PROPERTY_FILTER_EXCLUDED_FIELD_PATHS } from "../lib/constants";
|
|
25
|
+
import { useAccumulatedListPages } from "../hooks/useAccumulatedListPages";
|
|
26
26
|
|
|
27
27
|
const PROPERTIES_DEFAULT_SORT = "CreatedDate DESC";
|
|
28
28
|
|
|
@@ -12,7 +12,7 @@ import Maintenance from "./pages/Maintenance";
|
|
|
12
12
|
import MaintenanceWorkers from "./pages/MaintenanceWorkers";
|
|
13
13
|
import Properties from "./pages/Properties";
|
|
14
14
|
import Applications from "./pages/Applications";
|
|
15
|
-
import { PATHS } from "./lib/routeConfig
|
|
15
|
+
import { PATHS } from "./lib/routeConfig";
|
|
16
16
|
|
|
17
17
|
export const routes: RouteObject[] = [
|
|
18
18
|
{
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/webapp-template-app-react-sample-b2e-experimental",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.83.0",
|
|
4
4
|
"description": "B2E starter app template",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"clean": "rm -rf dist"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@salesforce/webapp-experimental": "^1.
|
|
20
|
-
"@salesforce/webapp-template-feature-react-global-search-experimental": "^1.
|
|
19
|
+
"@salesforce/webapp-experimental": "^1.83.0",
|
|
20
|
+
"@salesforce/webapp-template-feature-react-global-search-experimental": "^1.83.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@testing-library/jest-dom": "^6.6.3",
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Image handling rules - Unsplash default, CSP compliance, accessibility
|
|
3
|
-
paths:
|
|
4
|
-
- "force-app/main/default/webapplications/**/*"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Images
|
|
8
|
-
|
|
9
|
-
**Guidelines:**
|
|
10
|
-
- Default to Unsplash when the user does not specify an image source; it is pre-configured in CSP and works in Salesforce without extra setup.
|
|
11
|
-
- Use URL format: `https://images.unsplash.com/photo-{PHOTO_ID}?w={WIDTH}&h={HEIGHT}&fit=crop&q=80&auto=format` (e.g. photo ID `1557683316-973673baf926`).
|
|
12
|
-
- If the user requests a different source, use it and inform: "Add CSP Trusted Site in Setup → Security → CSP Trusted Sites".
|
|
13
|
-
- Always add descriptive `alt` text; use `alt=""` only for decorative images.
|
|
14
|
-
- Avoid `placeholder.com`, `picsum.photos`, `via.placeholder.com` unless requested.
|
|
15
|
-
- CSP-approved domains: `images.unsplash.com` (primary), `source.unsplash.com`, `images.pexels.com`.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|