@ynput/ayon-frontend-shared 0.3.33 → 0.3.34
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/_virtual/index.cjs7.js +1 -1
- package/dist/_virtual/index.cjs9.js +1 -1
- package/dist/_virtual/index.es7.js +2 -5
- package/dist/_virtual/index.es7.js.map +1 -1
- package/dist/_virtual/index.es9.js +5 -2
- package/dist/_virtual/index.es9.js.map +1 -1
- package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
- package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
- package/dist/shared/node_modules/react-is/index.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +2 -2
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +2 -2
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +7 -7
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +95 -93
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityDate.cjs.js +3 -3
- package/dist/shared/src/containers/Feed/components/ActivityDate.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityDate.es.js +37 -35
- package/dist/shared/src/containers/Feed/components/ActivityDate.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.es.js +14 -13
- package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +34 -38
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js +13 -4
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js +17 -8
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +6 -4
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +8 -8
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
- package/dist/types/api/generated/graphql.d.ts +4 -3
- package/dist/types/api/generated/graphqlLinks.d.ts +2 -1
- package/dist/types/api/queries/activities/getActivities.d.ts +77 -77
- package/dist/types/api/queries/activities/updateActivities.d.ts +4 -4
- package/dist/types/api/queries/entities/getEntity.d.ts +1 -1
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +1 -1
- package/dist/types/api/queries/entities/updateEntity.d.ts +1 -1
- package/dist/types/api/queries/entityLists/getLists.d.ts +1 -1
- package/dist/types/api/queries/overview/getOverview.d.ts +1 -1
- package/dist/types/api/queries/project/getProject.d.ts +1 -1
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +1 -1
- package/dist/types/api/queries/users/getUsers.d.ts +1 -1
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +2 -2
- package/dist/types/containers/Feed/components/ActivityDate.d.ts +2 -1
- package/dist/types/containers/Feed/components/ActivityItem.d.ts +1 -0
- package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +1 -0
- package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +3 -3
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const r=require("../../../../../_virtual/jsx-runtime.cjs.js"),j=require("../../Feed/components/ActivityReferenceTooltip/ActivityReferenceTooltip.cjs.js");require("react");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("clsx");require("@ynput/ayon-react-components");const
|
|
1
|
+
"use strict";const r=require("../../../../../_virtual/jsx-runtime.cjs.js"),j=require("../../Feed/components/ActivityReferenceTooltip/ActivityReferenceTooltip.cjs.js");require("react");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("clsx");require("@ynput/ayon-react-components");const f=require("../../Feed/Feed.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");const R=require("../../Feed/context/FeedContext.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");const h=require("../../../context/DetailsPanelContext.cjs.js"),p=require("../../../hooks/useLocalStorage.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("lodash");require("react-toastify");require("react-redux");require("custom-protocol-check");require("../../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");const P=({scope:i="dashboard",entities:q,entityType:t,thumbnailHash:b,projectName:s,projectInfo:n,annotations:o,removeAnnotation:a,exportAnnotationComposite:c,...e})=>{const l={annotations:o,removeAnnotation:a,exportAnnotationComposite:c},{user:u}=h.useDetailsPanelContext(),d=u.name||"",x=u.attrib?.fullName||"",[m,F]=p.useLocalStorage(`feed-filters-${i}`,{operator:"and",conditions:[]});return r.jsxRuntimeExports.jsxs(R.FeedProvider,{scope:i,entities:q,projectName:s,entityType:t,projectInfo:n,userName:d,userFullName:x,feedFilter:m,setFeedFilter:F,...l,...e,children:[r.jsxRuntimeExports.jsx(f.Feed,{...e,statuses:e.statuses}),r.jsxRuntimeExports.jsx(j,{})]})};module.exports=P;
|
|
2
2
|
//# sourceMappingURL=FeedWrapper.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedWrapper.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/containers/FeedWrapper.tsx"],"sourcesContent":["import { FC } from 'react'\n\nimport { Feed, ActivityReferenceTooltip, FeedProvider } from '@shared/containers/Feed'\nimport type { Status, QueryFilter } from '@shared/api'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useLocalStorage } from '@shared/hooks'\n\ninterface FeedWrapperProps {\n entities: any[]\n activeUsers: any[]\n projectInfo: any\n projectName: string\n entityType: string\n thumbnailHash?: string // thumbnailHash from entity\n disabled: boolean\n readOnly: boolean\n isSlideOut?: boolean\n statuses: Status[]\n scope: string\n entityListId?: string\n annotations?: any\n removeAnnotation?: (id: string) => void\n exportAnnotationComposite?: (id: string) => Promise<Blob | null>\n}\n\n// forwards any props\nconst FeedWrapper: FC<FeedWrapperProps> = ({\n scope = 'dashboard',\n entities,\n entityType,\n thumbnailHash,\n projectName,\n projectInfo,\n annotations,\n removeAnnotation,\n exportAnnotationComposite,\n ...props\n}) => {\n const annotationsProps = { annotations, removeAnnotation, exportAnnotationComposite }\n\n const { user } = useDetailsPanelContext()\n\n const userName = user.name || ''\n const userFullName = user.attrib?.fullName || ''\n\n const [feedFilter, setFeedFilter] = useLocalStorage<QueryFilter>(`feed-filters-${scope}`, {\n operator: 'and',\n conditions: [],\n })\n\n return (\n <FeedProvider\n {...{\n scope,\n entities,\n projectName,\n entityType,\n projectInfo,\n userName,\n userFullName,\n feedFilter,\n setFeedFilter,\n }}\n {...annotationsProps}\n {...props}\n >\n <Feed {...props} statuses={props.statuses}
|
|
1
|
+
{"version":3,"file":"FeedWrapper.cjs.js","sources":["../../../../../../src/containers/DetailsPanel/containers/FeedWrapper.tsx"],"sourcesContent":["import { FC } from 'react'\n\nimport { Feed, ActivityReferenceTooltip, FeedProvider } from '@shared/containers/Feed'\nimport type { Status, QueryFilter } from '@shared/api'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useLocalStorage } from '@shared/hooks'\n\ninterface FeedWrapperProps {\n entities: any[]\n activeUsers: any[]\n projectInfo: any\n projectName: string\n entityType: string\n thumbnailHash?: string // thumbnailHash from entity\n disabled: boolean\n readOnly: boolean\n isSlideOut?: boolean\n statuses: Status[]\n scope: string\n entityListId?: string\n annotations?: any\n removeAnnotation?: (id: string) => void\n exportAnnotationComposite?: (id: string) => Promise<Blob | null>\n}\n\n// forwards any props\nconst FeedWrapper: FC<FeedWrapperProps> = ({\n scope = 'dashboard',\n entities,\n entityType,\n thumbnailHash,\n projectName,\n projectInfo,\n annotations,\n removeAnnotation,\n exportAnnotationComposite,\n ...props\n}) => {\n const annotationsProps = { annotations, removeAnnotation, exportAnnotationComposite }\n\n const { user } = useDetailsPanelContext()\n\n const userName = user.name || ''\n const userFullName = user.attrib?.fullName || ''\n\n const [feedFilter, setFeedFilter] = useLocalStorage<QueryFilter>(`feed-filters-${scope}`, {\n operator: 'and',\n conditions: [],\n })\n\n return (\n <FeedProvider\n {...{\n scope,\n entities,\n projectName,\n entityType,\n projectInfo,\n userName,\n userFullName,\n feedFilter,\n setFeedFilter,\n }}\n {...annotationsProps}\n {...props}\n >\n <Feed {...props} statuses={props.statuses} />\n <ActivityReferenceTooltip />\n </FeedProvider>\n )\n}\n\nexport default FeedWrapper\n"],"names":["FeedWrapper","scope","entities","entityType","thumbnailHash","projectName","projectInfo","annotations","removeAnnotation","exportAnnotationComposite","props","annotationsProps","user","useDetailsPanelContext","userName","userFullName","feedFilter","setFeedFilter","useLocalStorage","jsxs","FeedProvider","jsx","Feed","ActivityReferenceTooltip"],"mappings":"kvOA0BA,MAAMA,EAAoC,CAAC,CACzC,MAAAC,EAAQ,YACR,SAAAC,EACA,WAAAC,EACA,cAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,0BAAAC,EACA,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAmB,CAAE,YAAAJ,EAAa,iBAAAC,EAAkB,0BAAAC,CAAA,EAEpD,CAAE,KAAAG,CAAA,EAASC,yBAAA,EAEXC,EAAWF,EAAK,MAAQ,GACxBG,EAAeH,EAAK,QAAQ,UAAY,GAExC,CAACI,EAAYC,CAAa,EAAIC,EAAAA,gBAA6B,gBAAgBjB,CAAK,GAAI,CACxF,SAAU,MACV,WAAY,CAAA,CAAC,CACd,EAED,OACEkB,EAAAA,kBAAAA,KAACC,EAAAA,aAAA,CAEG,MAAAnB,EACA,SAAAC,EACA,YAAAG,EACA,WAAAF,EACA,YAAAG,EACA,SAAAQ,EACA,aAAAC,EACA,WAAAC,EACA,cAAAC,EAED,GAAGN,EACH,GAAGD,EAEJ,SAAA,CAAAW,EAAAA,kBAAAA,IAACC,EAAAA,KAAA,CAAM,GAAGZ,EAAO,SAAUA,EAAM,SAAU,0BAC1Ca,EAAA,CAAA,CAAyB,CAAA,CAAA,CAAA,CAGhC"}
|
|
@@ -11,8 +11,8 @@ import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js"
|
|
|
11
11
|
import "../../Feed/components/ActivityCategorySelect/CategoryTag.es.js";
|
|
12
12
|
import { FeedProvider as h } from "../../Feed/context/FeedContext.es.js";
|
|
13
13
|
import "../../../context/RemoteModulesContext.es.js";
|
|
14
|
-
import { useDetailsPanelContext as
|
|
15
|
-
import { useLocalStorage as
|
|
14
|
+
import { useDetailsPanelContext as b } from "../../../context/DetailsPanelContext.es.js";
|
|
15
|
+
import { useLocalStorage as N } from "../../../hooks/useLocalStorage.es.js";
|
|
16
16
|
import "../../../../../_virtual/runtime.es.js";
|
|
17
17
|
import "../../../../../_virtual/semver.es.js";
|
|
18
18
|
import "../../../api/base/client.es.js";
|
|
@@ -137,7 +137,7 @@ const Vr = ({
|
|
|
137
137
|
scope: o = "dashboard",
|
|
138
138
|
entities: m,
|
|
139
139
|
entityType: p,
|
|
140
|
-
thumbnailHash:
|
|
140
|
+
thumbnailHash: P,
|
|
141
141
|
projectName: e,
|
|
142
142
|
projectInfo: s,
|
|
143
143
|
annotations: a,
|
|
@@ -145,7 +145,7 @@ const Vr = ({
|
|
|
145
145
|
exportAnnotationComposite: l,
|
|
146
146
|
...t
|
|
147
147
|
}) => {
|
|
148
|
-
const
|
|
148
|
+
const d = { annotations: a, removeAnnotation: n, exportAnnotationComposite: l }, { user: i } = b(), u = i.name || "", f = i.attrib?.fullName || "", [c, x] = N(`feed-filters-${o}`, {
|
|
149
149
|
operator: "and",
|
|
150
150
|
conditions: []
|
|
151
151
|
});
|
|
@@ -157,14 +157,14 @@ const Vr = ({
|
|
|
157
157
|
projectName: e,
|
|
158
158
|
entityType: p,
|
|
159
159
|
projectInfo: s,
|
|
160
|
-
userName:
|
|
160
|
+
userName: u,
|
|
161
161
|
userFullName: f,
|
|
162
162
|
feedFilter: c,
|
|
163
163
|
setFeedFilter: x,
|
|
164
|
-
...
|
|
164
|
+
...d,
|
|
165
165
|
...t,
|
|
166
166
|
children: [
|
|
167
|
-
/* @__PURE__ */ r.jsx(j, { ...t, statuses: t.statuses
|
|
167
|
+
/* @__PURE__ */ r.jsx(j, { ...t, statuses: t.statuses }),
|
|
168
168
|
/* @__PURE__ */ r.jsx(F, {})
|
|
169
169
|
]
|
|
170
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedWrapper.es.js","sources":["../../../../../../src/containers/DetailsPanel/containers/FeedWrapper.tsx"],"sourcesContent":["import { FC } from 'react'\n\nimport { Feed, ActivityReferenceTooltip, FeedProvider } from '@shared/containers/Feed'\nimport type { Status, QueryFilter } from '@shared/api'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useLocalStorage } from '@shared/hooks'\n\ninterface FeedWrapperProps {\n entities: any[]\n activeUsers: any[]\n projectInfo: any\n projectName: string\n entityType: string\n thumbnailHash?: string // thumbnailHash from entity\n disabled: boolean\n readOnly: boolean\n isSlideOut?: boolean\n statuses: Status[]\n scope: string\n entityListId?: string\n annotations?: any\n removeAnnotation?: (id: string) => void\n exportAnnotationComposite?: (id: string) => Promise<Blob | null>\n}\n\n// forwards any props\nconst FeedWrapper: FC<FeedWrapperProps> = ({\n scope = 'dashboard',\n entities,\n entityType,\n thumbnailHash,\n projectName,\n projectInfo,\n annotations,\n removeAnnotation,\n exportAnnotationComposite,\n ...props\n}) => {\n const annotationsProps = { annotations, removeAnnotation, exportAnnotationComposite }\n\n const { user } = useDetailsPanelContext()\n\n const userName = user.name || ''\n const userFullName = user.attrib?.fullName || ''\n\n const [feedFilter, setFeedFilter] = useLocalStorage<QueryFilter>(`feed-filters-${scope}`, {\n operator: 'and',\n conditions: [],\n })\n\n return (\n <FeedProvider\n {...{\n scope,\n entities,\n projectName,\n entityType,\n projectInfo,\n userName,\n userFullName,\n feedFilter,\n setFeedFilter,\n }}\n {...annotationsProps}\n {...props}\n >\n <Feed {...props} statuses={props.statuses}
|
|
1
|
+
{"version":3,"file":"FeedWrapper.es.js","sources":["../../../../../../src/containers/DetailsPanel/containers/FeedWrapper.tsx"],"sourcesContent":["import { FC } from 'react'\n\nimport { Feed, ActivityReferenceTooltip, FeedProvider } from '@shared/containers/Feed'\nimport type { Status, QueryFilter } from '@shared/api'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useLocalStorage } from '@shared/hooks'\n\ninterface FeedWrapperProps {\n entities: any[]\n activeUsers: any[]\n projectInfo: any\n projectName: string\n entityType: string\n thumbnailHash?: string // thumbnailHash from entity\n disabled: boolean\n readOnly: boolean\n isSlideOut?: boolean\n statuses: Status[]\n scope: string\n entityListId?: string\n annotations?: any\n removeAnnotation?: (id: string) => void\n exportAnnotationComposite?: (id: string) => Promise<Blob | null>\n}\n\n// forwards any props\nconst FeedWrapper: FC<FeedWrapperProps> = ({\n scope = 'dashboard',\n entities,\n entityType,\n thumbnailHash,\n projectName,\n projectInfo,\n annotations,\n removeAnnotation,\n exportAnnotationComposite,\n ...props\n}) => {\n const annotationsProps = { annotations, removeAnnotation, exportAnnotationComposite }\n\n const { user } = useDetailsPanelContext()\n\n const userName = user.name || ''\n const userFullName = user.attrib?.fullName || ''\n\n const [feedFilter, setFeedFilter] = useLocalStorage<QueryFilter>(`feed-filters-${scope}`, {\n operator: 'and',\n conditions: [],\n })\n\n return (\n <FeedProvider\n {...{\n scope,\n entities,\n projectName,\n entityType,\n projectInfo,\n userName,\n userFullName,\n feedFilter,\n setFeedFilter,\n }}\n {...annotationsProps}\n {...props}\n >\n <Feed {...props} statuses={props.statuses} />\n <ActivityReferenceTooltip />\n </FeedProvider>\n )\n}\n\nexport default FeedWrapper\n"],"names":["FeedWrapper","scope","entities","entityType","thumbnailHash","projectName","projectInfo","annotations","removeAnnotation","exportAnnotationComposite","props","annotationsProps","user","useDetailsPanelContext","userName","userFullName","feedFilter","setFeedFilter","useLocalStorage","jsxs","FeedProvider","jsx","Feed","ActivityReferenceTooltip"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAMA,KAAoC,CAAC;AAAA,EACzC,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,2BAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAmB,EAAE,aAAAJ,GAAa,kBAAAC,GAAkB,2BAAAC,EAAA,GAEpD,EAAE,MAAAG,EAAA,IAASC,EAAA,GAEXC,IAAWF,EAAK,QAAQ,IACxBG,IAAeH,EAAK,QAAQ,YAAY,IAExC,CAACI,GAAYC,CAAa,IAAIC,EAA6B,gBAAgBjB,CAAK,IAAI;AAAA,IACxF,UAAU;AAAA,IACV,YAAY,CAAA;AAAA,EAAC,CACd;AAED,SACEkB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MAEG,OAAAnB;AAAA,MACA,UAAAC;AAAA,MACA,aAAAG;AAAA,MACA,YAAAF;AAAA,MACA,aAAAG;AAAA,MACA,UAAAQ;AAAA,MACA,cAAAC;AAAA,MACA,YAAAC;AAAA,MACA,eAAAC;AAAA,MAED,GAAGN;AAAA,MACH,GAAGD;AAAA,MAEJ,UAAA;AAAA,QAAAW,gBAAAA,EAAAA,IAACC,GAAA,EAAM,GAAGZ,GAAO,UAAUA,EAAM,UAAU;AAAA,8BAC1Ca,GAAA,CAAA,CAAyB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGhC;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../../../_virtual/jsx-runtime.cjs.js"),q=require("react"),pe=require("./components/ActivityItem.cjs.js"),ge=require("./components/CommentInput/CommentInput.cjs.js"),E=require("./Feed.styled.cjs.js"),he=require("./hooks/useCommentMutations.cjs.js"),xe=require("./hooks/useTransformActivities.cjs.js"),ye=require("../../../../node_modules/react-intersection-observer/dist/index.cjs.js"),fe=require("./hooks/useSaveScrollPos.cjs.js"),ve=require("./hooks/useScrollOnInputOpen.cjs.js"),Ce=require("./feedHelpers.cjs.js");require("@ynput/ayon-react-components");const ke=require("clsx"),Ee=require("./hooks/useScrollToHighlighted.cjs.js"),we=require("./components/FileUploadPreview/FileUploadPreview.cjs.js"),Fe=require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");const x=require("./context/FeedContext.cjs.js");require("../../context/RemoteModulesContext.cjs.js");const Re=require("../../context/DetailsPanelContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/dataImport.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/columnStats/metricTargets.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");const je=require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/products/getFolderProducts.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/teams/getTeams.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");require("lodash");require("react-toastify");require("react-redux");require("custom-protocol-check");require("../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("uuid");require("../../util/pubsub.cjs.js");require("../../context/PowerpackContextInstance.cjs.js");require("../../context/SubtasksModulesContextInstance.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");const Ie=require("./helpers/mergeAnnotationAttachments.cjs.js"),Me=require("../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js"),be=require("./hooks/useLastVersionReview.cjs.js"),Pe=30,Ae=[{id:"comments",tooltip:"Comments",icon:"chat"},{id:"checklists",tooltip:"Checklists",icon:"checklist"},{id:"versions",tooltip:"Published versions",icon:"layers"},{id:"updates",tooltip:"Entity updates",icon:"arrow_circle_right"}],Ne=({disabled:H,readOnly:B,statuses:W=[],entityListId:U,isSlideOut:G,versionReview:w=!1})=>{const{projectName:n,entities:l,entityType:m,editingId:F,projectInfo:R,setEditingId:j,userName:I,activitiesData:y,isLoadingNew:u,isLoadingNextPage:M,loadNextPage:d,hasNextPage:Q,users:z,feedFilter:a,setFeedFilter:J}=x.useFeedContext(),{openSlideOut:K,highlightedActivities:f,setHighlightedActivities:X,onOpenImage:Y,setFeedAnnotations:b,user:P}=Re.useDetailsPanelContext(),Z=a.conditions?.some(e=>"key"in e&&e.key==="versions"&&e.value===!0),$=a.conditions?.some(e=>"key"in e&&["comments","checklists","versions","updates"].includes(e.key)&&e.value===!0),A=a.conditions?.some(e=>"key"in e&&(e.key==="comments"||e.key==="checklists")&&e.value===!0),{data:N,isLoading:ee}=je.useGetMyProjectPermissionsQuery({projectName:n},{skip:!n}),re=!P.data?.isManager&&!P.data?.isAdmin&&!ee&&N?.activities?.enabled&&!N?.activities?.activities?.includes("comment")||$&&!A,p=q.useMemo(()=>Ie(y),[y]);q.useEffect(()=>{p.length||b([]);const e=p.map(r=>r.activityData?.annotations?.map(i=>({...i,activityId:r.activityId}))).filter(Boolean).flat();b(e)},[p]);const g=xe.default(p,z,R,m,I,a),c=q.useRef(null);ve({feedRef:c,isInputOpen:F===x.FEED_NEW_COMMENT,height:93}),fe({entities:l,feedRef:c,filter:a,disabled:!!f.length,isLoading:u}),Ee({feedRef:c,highlighted:f,isLoading:u||M,loadNextPage:d,hasNextPage:!!d,activities:y});const{submitComment:L,updateComment:O,deleteComment:ie,submitReview:T,isSaving:te}=he({projectName:n,entityType:m,entities:l,filter:a,entityListId:U}),se=q.useCallback(async(e,r=[],i={})=>{await L(e,r,i),c.current&&c.current.scrollTo({top:0})},[L,c]),ne=q.useCallback(async e=>{await T(e)},[T]),oe=(e,r)=>{const i=e?.target;if(!i||!r)return console.log("no target or activity");const t=i.checked,o=t?"[ ]":"[x]",qe=t?"[x]":"[ ]",{body:h}=r,S=Array.from(i.closest(".comment-body")?.querySelectorAll(".task-list-item")||[]).findIndex(k=>k===i.closest("li"));let _=S;(h.match(/\[.\]/g)||[]).forEach((k,me)=>{k!==o&&me<S&&_--});const D=[];let v=-1;for(;(v=h.indexOf(o,v+1))>-1;)D.push(v);const C=D[_];if(C===void 0)return;const de=C+o.length,V=h.slice(0,C)+qe+h.slice(de);V&&O(r,V,r.files)},ue=e=>{const{entityId:r,entityType:i,activityId:t}=e;if(!i||!["version","task","folder"].includes(i))return console.log("Entity type not supported yet");if(!r||!i||!n)return console.log("No entity id or type found");K({entityId:r,entityType:i,projectName:n}),X([t])},ae=({index:e,activityId:r})=>{const i=Object.values(g).reverse().filter(t=>t.activityType=="comment").map(t=>({id:t.activityId,files:t.files.filter(o=>we.isFilePreviewable(o.mime,o.ext))})).filter(t=>t.files.length>0);Y?.({files:i,activityId:r,index:e,projectName:n})},ce=q.useMemo(()=>Ce.getLoadingPlaceholders(10),[]),le=be.useLastVersionReview({projectName:n,enabled:w,entityIds:l.map(e=>e.id),activities:g,loadingActivities:u,userName:I});return s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:s.jsxRuntimeExports.jsxs(E.FeedContainer,{className:"feed",children:[void 0,s.jsxRuntimeExports.jsx(Me,{label:"Activity Feed",filters:Ae,currentFilter:a,onFilterChange:J,isLoading:u}),s.jsxRuntimeExports.jsxs(E.FeedContent,{ref:c,className:ke({loading:u},"no-shimmer"),children:[u?ce:g.map(e=>s.jsxRuntimeExports.jsx(pe,{activity:e,onCheckChange:oe,onDelete:ie,onUpdate:async(r,i,t,o)=>await O(e,r,i,o),projectInfo:R,projectName:n,entityType:m,onReferenceClick:ue,createdAts:l.map(r=>r.createdAt),onFileExpand:ae,showOrigin:l.length>1,filter:a,editProps:{projectName:n,entities:l,entityType:m},isHighlighted:f.includes(e.activityId),readOnly:B,statuses:W,isSlideOut:G},e.activityId)),g.length===0&&Z&&!A&&!u&&s.jsxRuntimeExports.jsx(Fe.EmptyPlaceholder,{message:"No versions published yet",icon:"layers"}),Q&&d&&s.jsxRuntimeExports.jsx(ye.InView,{root:c.current,onChange:e=>e&&d(),rootMargin:"400px 0px 0px 0px",children:s.jsxRuntimeExports.jsx(E.LoadMore,{style:{height:0},onClick:()=>d(),children:M?"Loading more...":"Click to load more"})})]}),!re&&s.jsxRuntimeExports.jsx(ge.default,{initValue:null,onSubmit:se,isOpen:F===x.FEED_NEW_COMMENT,onClose:()=>j(null),onOpen:()=>j(x.FEED_NEW_COMMENT),disabled:H,isLoading:u||!l.length||te,versionReview:w,lastOwnVersionReview:le,onReview:ne})]})})};exports.Feed=Ne;exports.activitiesLast=Pe;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../../../_virtual/jsx-runtime.cjs.js"),q=require("react"),ge=require("./components/ActivityItem.cjs.js"),he=require("./components/CommentInput/CommentInput.cjs.js"),E=require("./Feed.styled.cjs.js"),xe=require("./hooks/useCommentMutations.cjs.js"),ye=require("./hooks/useTransformActivities.cjs.js"),fe=require("../../../../node_modules/react-intersection-observer/dist/index.cjs.js"),ve=require("./hooks/useSaveScrollPos.cjs.js"),Ce=require("./hooks/useScrollOnInputOpen.cjs.js"),ke=require("./feedHelpers.cjs.js");require("@ynput/ayon-react-components");const Ee=require("clsx"),we=require("./hooks/useScrollToHighlighted.cjs.js"),Fe=require("./components/FileUploadPreview/FileUploadPreview.cjs.js"),Re=require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");const x=require("./context/FeedContext.cjs.js");require("../../context/RemoteModulesContext.cjs.js");const je=require("../../context/DetailsPanelContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/dataImport.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/columnStats/metricTargets.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");const Ie=require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/products/getFolderProducts.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/teams/getTeams.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");require("lodash");require("react-toastify");require("react-redux");require("custom-protocol-check");require("../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("uuid");require("../../util/pubsub.cjs.js");require("../../context/PowerpackContextInstance.cjs.js");require("../../context/SubtasksModulesContextInstance.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");const Me=require("./helpers/mergeAnnotationAttachments.cjs.js"),be=require("../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js"),Pe=require("./hooks/useLastVersionReview.cjs.js"),Ae=30,Ne=[{id:"comments",tooltip:"Comments",icon:"chat"},{id:"checklists",tooltip:"Checklists",icon:"checklist"},{id:"versions",tooltip:"Published versions",icon:"layers"},{id:"updates",tooltip:"Entity updates",icon:"arrow_circle_right"}],Le=({disabled:H,readOnly:B,statuses:W=[],entityListId:G,isSlideOut:U,versionReview:w=!1})=>{const{projectName:n,entities:l,entityType:m,editingId:F,projectInfo:R,setEditingId:j,userName:I,activitiesData:y,isLoadingNew:u,isLoadingNextPage:M,loadNextPage:d,hasNextPage:Q,users:z,feedFilter:a,setFeedFilter:J,isGuest:K}=x.useFeedContext(),{openSlideOut:X,highlightedActivities:f,setHighlightedActivities:Y,onOpenImage:Z,setFeedAnnotations:b,user:P}=je.useDetailsPanelContext(),$=a.conditions?.some(e=>"key"in e&&e.key==="versions"&&e.value===!0),ee=a.conditions?.some(e=>"key"in e&&["comments","checklists","versions","updates"].includes(e.key)&&e.value===!0),A=a.conditions?.some(e=>"key"in e&&(e.key==="comments"||e.key==="checklists")&&e.value===!0),{data:N,isLoading:re}=Ie.useGetMyProjectPermissionsQuery({projectName:n},{skip:!n}),ie=!P.data?.isManager&&!P.data?.isAdmin&&!re&&N?.activities?.enabled&&!N?.activities?.activities?.includes("comment")||ee&&!A,p=q.useMemo(()=>Me(y),[y]);q.useEffect(()=>{p.length||b([]);const e=p.map(r=>r.activityData?.annotations?.map(i=>({...i,activityId:r.activityId}))).filter(Boolean).flat();b(e)},[p]);const g=ye.default(p,z,R,m,I,a),c=q.useRef(null);Ce({feedRef:c,isInputOpen:F===x.FEED_NEW_COMMENT,height:93}),ve({entities:l,feedRef:c,filter:a,disabled:!!f.length,isLoading:u}),we({feedRef:c,highlighted:f,isLoading:u||M,loadNextPage:d,hasNextPage:!!d,activities:y});const{submitComment:L,updateComment:O,deleteComment:te,submitReview:T,isSaving:se}=xe({projectName:n,entityType:m,entities:l,filter:a,entityListId:G}),ne=q.useCallback(async(e,r=[],i={})=>{await L(e,r,i),c.current&&c.current.scrollTo({top:0})},[L,c]),oe=q.useCallback(async e=>{await T(e)},[T]),ue=(e,r)=>{const i=e?.target;if(!i||!r)return console.log("no target or activity");const t=i.checked,o=t?"[ ]":"[x]",de=t?"[x]":"[ ]",{body:h}=r,S=Array.from(i.closest(".comment-body")?.querySelectorAll(".task-list-item")||[]).findIndex(k=>k===i.closest("li"));let _=S;(h.match(/\[.\]/g)||[]).forEach((k,pe)=>{k!==o&&pe<S&&_--});const D=[];let v=-1;for(;(v=h.indexOf(o,v+1))>-1;)D.push(v);const C=D[_];if(C===void 0)return;const me=C+o.length,V=h.slice(0,C)+de+h.slice(me);V&&O(r,V,r.files)},ae=e=>{const{entityId:r,entityType:i,activityId:t}=e;if(!i||!["version","task","folder"].includes(i))return console.log("Entity type not supported yet");if(!r||!i||!n)return console.log("No entity id or type found");X({entityId:r,entityType:i,projectName:n}),Y([t])},ce=({index:e,activityId:r})=>{const i=Object.values(g).reverse().filter(t=>t.activityType=="comment").map(t=>({id:t.activityId,files:t.files.filter(o=>Fe.isFilePreviewable(o.mime,o.ext))})).filter(t=>t.files.length>0);Z?.({files:i,activityId:r,index:e,projectName:n})},le=q.useMemo(()=>ke.getLoadingPlaceholders(10),[]),qe=Pe.useLastVersionReview({projectName:n,enabled:w,entityIds:l.map(e=>e.id),activities:g,loadingActivities:u,userName:I});return s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{children:s.jsxRuntimeExports.jsxs(E.FeedContainer,{className:"feed",children:[void 0,s.jsxRuntimeExports.jsx(be,{label:"Activity Feed",filters:Ne,currentFilter:a,onFilterChange:J,isLoading:u}),s.jsxRuntimeExports.jsxs(E.FeedContent,{ref:c,className:Ee({loading:u},"no-shimmer"),children:[u?le:g.map(e=>s.jsxRuntimeExports.jsx(ge,{activity:e,onCheckChange:ue,onDelete:te,onUpdate:async(r,i,t,o)=>await O(e,r,i,o),projectInfo:R,projectName:n,entityType:m,onReferenceClick:ae,createdAts:l.map(r=>r.createdAt),onFileExpand:ce,showOrigin:l.length>1,filter:a,editProps:{projectName:n,entities:l,entityType:m},isHighlighted:f.includes(e.activityId),readOnly:B,statuses:W,isSlideOut:U,isGuest:K},e.activityId)),g.length===0&&$&&!A&&!u&&s.jsxRuntimeExports.jsx(Re.EmptyPlaceholder,{message:"No versions published yet",icon:"layers"}),Q&&d&&s.jsxRuntimeExports.jsx(fe.InView,{root:c.current,onChange:e=>e&&d(),rootMargin:"400px 0px 0px 0px",children:s.jsxRuntimeExports.jsx(E.LoadMore,{style:{height:0},onClick:()=>d(),children:M?"Loading more...":"Click to load more"})})]}),!ie&&s.jsxRuntimeExports.jsx(he.default,{initValue:null,onSubmit:ne,isOpen:F===x.FEED_NEW_COMMENT,onClose:()=>j(null),onOpen:()=>j(x.FEED_NEW_COMMENT),disabled:H,isLoading:u||!l.length||se,versionReview:w,lastOwnVersionReview:qe,onReview:oe})]})})};exports.Feed=Le;exports.activitiesLast=Ae;
|
|
2
2
|
//# sourceMappingURL=Feed.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feed.cjs.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput, { VersionReviewFeedback } from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType, useGetMyProjectPermissionsQuery } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\nimport TabHeaderAndFilters, {\n FilterItem,\n} from '../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters'\nimport { useLastVersionReview } from './hooks/useLastVersionReview'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nconst feedFilters: FilterItem<string>[] = [\n {\n id: 'comments',\n tooltip: 'Comments',\n icon: 'chat',\n },\n {\n id: 'checklists',\n tooltip: 'Checklists',\n icon: 'checklist',\n },\n {\n id: 'versions',\n tooltip: 'Published versions',\n icon: 'layers',\n },\n {\n id: 'updates',\n tooltip: 'Entity updates',\n icon: 'arrow_circle_right',\n },\n]\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n isSlideOut?: boolean\n versionReview?: boolean\n}\n\nexport const Feed = ({\n disabled,\n readOnly,\n statuses = [],\n entityListId,\n isSlideOut,\n versionReview = false,\n}: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n feedFilter,\n setFeedFilter,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n user,\n } = useDetailsPanelContext()\n\n const isVersionsFilter = feedFilter.conditions?.some(\n (c) => 'key' in c && c.key === 'versions' && c.value === true,\n )\n const hasActiveFilters = feedFilter.conditions?.some(\n (c) => 'key' in c && ['comments', 'checklists', 'versions', 'updates'].includes(c.key) && c.value === true,\n )\n const hasCommentLikeFilter = feedFilter.conditions?.some(\n (c) => 'key' in c && (c.key === 'comments' || c.key === 'checklists') && c.value === true,\n )\n\n // check activities permission for commenting\n const {\n data: projectPermissions,\n isLoading: isLoadingPermissions,\n } = useGetMyProjectPermissionsQuery(\n { projectName },\n { skip: !projectName },\n )\n const isCommentRestricted =\n !user.data?.isManager &&\n !user.data?.isAdmin &&\n !isLoadingPermissions &&\n projectPermissions?.activities?.enabled &&\n !projectPermissions?.activities?.activities?.includes('comment')\n\n // hide comment input for specific filters or when restricted by permissions\n const hideCommentInput = isCommentRestricted || (hasActiveFilters && !hasCommentLikeFilter)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n feedFilter,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: feedFilter,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew || isLoadingNextPage,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n activities: activitiesData,\n })\n\n // comment mutations here!\n const {\n submitComment: submitCommentMutation,\n updateComment,\n deleteComment,\n submitReview: submitReviewMutation,\n isSaving,\n } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: feedFilter,\n entityListId,\n })\n\n // wrap submitComment to scroll to bottom\n const submitComment = useCallback(\n async (value: string, files: any[] = [], data: any = {}) => {\n await submitCommentMutation(value, files, data)\n // scroll to bottom (scrollTop 0 is bottom because of column-reverse)\n if (feedRef.current) {\n ;(feedRef.current as any).scrollTo({ top: 0 })\n }\n },\n [submitCommentMutation, feedRef],\n )\n\n const submitReview = useCallback(async (feedback: VersionReviewFeedback) => {\n await submitReviewMutation(feedback)\n }, [submitReviewMutation])\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n const lastVersionReview = useLastVersionReview({\n projectName,\n enabled: versionReview,\n entityIds: entities.map(e => e.id),\n activities: transformedActivitiesData,\n loadingActivities: isLoadingNew,\n userName,\n })\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <TabHeaderAndFilters\n label=\"Activity Feed\"\n filters={feedFilters}\n currentFilter={feedFilter}\n onFilterChange={setFeedFilter}\n isLoading={isLoadingNew}\n />\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={feedFilter}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n isSlideOut={isSlideOut}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 0 &&\n isVersionsFilter &&\n !hasCommentLikeFilter &&\n !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n versionReview={versionReview}\n lastOwnVersionReview={lastVersionReview}\n onReview={submitReview}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","feedFilters","Feed","disabled","readOnly","statuses","entityListId","isSlideOut","versionReview","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","feedFilter","setFeedFilter","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","user","useDetailsPanelContext","isVersionsFilter","c","hasActiveFilters","hasCommentLikeFilter","projectPermissions","isLoadingPermissions","useGetMyProjectPermissionsQuery","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitCommentMutation","updateComment","deleteComment","submitReviewMutation","isSaving","useCommentMutations","submitComment","useCallback","value","files","data","submitReview","feedback","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","lastVersionReview","useLastVersionReview","jsxs","Styled.FeedContainer","jsx","TabHeaderAndFilters","Styled.FeedContent","clsx","ActivityItem","_refs","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Feed.cjs.js","sources":["../../../../../src/containers/Feed/Feed.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react'\nimport ActivityItem from './components/ActivityItem'\nimport CommentInput, { VersionReviewFeedback } from './components/CommentInput/CommentInput'\nimport * as Styled from './Feed.styled'\nimport useCommentMutations, { Activity } from './hooks/useCommentMutations'\nimport useTransformActivities from './hooks/useTransformActivities'\nimport { InView } from 'react-intersection-observer'\nimport useSaveScrollPos from './hooks/useSaveScrollPos'\nimport useScrollOnInputOpen from './hooks/useScrollOnInputOpen'\nimport { getLoadingPlaceholders } from './feedHelpers'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport useScrollToHighlighted from './hooks/useScrollToHighlighted'\nimport { isFilePreviewable } from './components/FileUploadPreview/FileUploadPreview'\nimport EmptyPlaceholder from '@shared/components/EmptyPlaceholder'\nimport { useFeedContext, FEED_NEW_COMMENT } from './context/FeedContext'\nimport { Status } from '../ProjectTreeTable/types/project'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { DetailsPanelEntityType, useGetMyProjectPermissionsQuery } from '@shared/api'\nimport mergeAnnotationAttachments from './helpers/mergeAnnotationAttachments'\nimport { SavedAnnotationMetadata } from '.'\nimport TabHeaderAndFilters, {\n FilterItem,\n} from '../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters'\nimport { useLastVersionReview } from './hooks/useLastVersionReview'\n\n// number of activities to get\nexport const activitiesLast = 30\n\nconst feedFilters: FilterItem<string>[] = [\n {\n id: 'comments',\n tooltip: 'Comments',\n icon: 'chat',\n },\n {\n id: 'checklists',\n tooltip: 'Checklists',\n icon: 'checklist',\n },\n {\n id: 'versions',\n tooltip: 'Published versions',\n icon: 'layers',\n },\n {\n id: 'updates',\n tooltip: 'Entity updates',\n icon: 'arrow_circle_right',\n },\n]\n\nexport type FeedProps = {\n disabled?: boolean\n readOnly: boolean\n statuses: Status[]\n entityListId?: string | undefined\n isSlideOut?: boolean\n versionReview?: boolean\n}\n\nexport const Feed = ({\n disabled,\n readOnly,\n statuses = [],\n entityListId,\n isSlideOut,\n versionReview = false,\n}: FeedProps) => {\n const {\n projectName,\n entities,\n entityType,\n editingId,\n projectInfo,\n setEditingId,\n userName,\n activitiesData,\n isLoadingNew,\n isLoadingNextPage,\n loadNextPage,\n hasNextPage,\n users,\n feedFilter,\n setFeedFilter,\n isGuest,\n } = useFeedContext()\n\n const {\n openSlideOut,\n highlightedActivities,\n setHighlightedActivities,\n onOpenImage,\n setFeedAnnotations,\n user,\n } = useDetailsPanelContext()\n\n const isVersionsFilter = feedFilter.conditions?.some(\n (c) => 'key' in c && c.key === 'versions' && c.value === true,\n )\n const hasActiveFilters = feedFilter.conditions?.some(\n (c) => 'key' in c && ['comments', 'checklists', 'versions', 'updates'].includes(c.key) && c.value === true,\n )\n const hasCommentLikeFilter = feedFilter.conditions?.some(\n (c) => 'key' in c && (c.key === 'comments' || c.key === 'checklists') && c.value === true,\n )\n\n // check activities permission for commenting\n const {\n data: projectPermissions,\n isLoading: isLoadingPermissions,\n } = useGetMyProjectPermissionsQuery(\n { projectName },\n { skip: !projectName },\n )\n const isCommentRestricted =\n !user.data?.isManager &&\n !user.data?.isAdmin &&\n !isLoadingPermissions &&\n projectPermissions?.activities?.enabled &&\n !projectPermissions?.activities?.activities?.includes('comment')\n\n // hide comment input for specific filters or when restricted by permissions\n const hideCommentInput = isCommentRestricted || (hasActiveFilters && !hasCommentLikeFilter)\n\n const activitiesWithMergedAnnotations = useMemo(\n () => mergeAnnotationAttachments(activitiesData),\n [activitiesData],\n )\n\n useEffect(() => {\n if (!activitiesWithMergedAnnotations.length) {\n setFeedAnnotations([])\n }\n\n const annotations = activitiesWithMergedAnnotations\n .map((activity) =>\n activity.activityData?.annotations?.map((a: SavedAnnotationMetadata) => ({\n ...a,\n activityId: activity.activityId,\n })),\n )\n .filter(Boolean)\n .flat()\n\n setFeedAnnotations(annotations)\n }, [activitiesWithMergedAnnotations])\n\n // do any transformation on activities data\n // 1. status change activities, attach status data based on projectName\n // 2. reverse the order\n // 3. is this activity from the current user?\n const transformedActivitiesData = useTransformActivities(\n // @ts-ignore\n activitiesWithMergedAnnotations,\n users,\n projectInfo,\n entityType,\n userName,\n feedFilter,\n ) as any[]\n\n // REFS\n const feedRef = useRef(null)\n // const commentInputRef = useRef(null)\n\n // scroll by height of comment input when it opens or closes\n useScrollOnInputOpen({ feedRef, isInputOpen: editingId === FEED_NEW_COMMENT, height: 93 })\n\n // save scroll position of a feed\n useSaveScrollPos({\n entities,\n feedRef,\n filter: feedFilter,\n disabled: !!highlightedActivities.length,\n isLoading: isLoadingNew,\n })\n // try and scroll to highlightedActivities activity\n useScrollToHighlighted({\n feedRef,\n highlighted: highlightedActivities,\n isLoading: isLoadingNew || isLoadingNextPage,\n loadNextPage,\n hasNextPage: !!loadNextPage,\n activities: activitiesData,\n })\n\n // comment mutations here!\n const {\n submitComment: submitCommentMutation,\n updateComment,\n deleteComment,\n submitReview: submitReviewMutation,\n isSaving,\n } = useCommentMutations({\n projectName,\n entityType: entityType,\n entities,\n filter: feedFilter,\n entityListId,\n })\n\n // wrap submitComment to scroll to bottom\n const submitComment = useCallback(\n async (value: string, files: any[] = [], data: any = {}) => {\n await submitCommentMutation(value, files, data)\n // scroll to bottom (scrollTop 0 is bottom because of column-reverse)\n if (feedRef.current) {\n ;(feedRef.current as any).scrollTo({ top: 0 })\n }\n },\n [submitCommentMutation, feedRef],\n )\n\n const submitReview = useCallback(async (feedback: VersionReviewFeedback) => {\n await submitReviewMutation(feedback)\n }, [submitReviewMutation])\n\n // When a checkbox is clicked, update the body to add/remove \"x\" in [ ] markdown\n // Then update comment with new body\n const handleCommentChecked = (e: React.ChangeEvent<HTMLInputElement>, activity: Activity) => {\n const target = e?.target\n if (!target || !activity) return console.log('no target or activity')\n\n // the value that it's changing to\n const checked: boolean = target.checked\n const currentMarkdown: string = checked ? '[ ]' : '[x]'\n const newMarkdown: string = checked ? '[x]' : '[ ]'\n\n const { body } = activity\n\n // based on all li elements in the whole className 'comment-body' with className 'task-list-item'\n // find the index of the task that was checked\n const taskIndex: number = Array.from(\n target.closest('.comment-body')?.querySelectorAll('.task-list-item') || [],\n ).findIndex((li: Element) => li === target.closest('li'))\n\n let replaceIndex: number = taskIndex\n\n // count the number of current markdowns in the body\n const allMarkdowns: string[] = body.match(/\\[.\\]/g) || []\n\n allMarkdowns.forEach((markdown: string, index: number) => {\n // does it match the current markdown?\n if (markdown !== currentMarkdown && index < taskIndex) replaceIndex--\n })\n\n // now find the indexes of the current markdown to replace\n const indexesOfCurrentMarkdownInBody: number[] = []\n let index: number = -1\n while ((index = body.indexOf(currentMarkdown, index + 1)) > -1) {\n indexesOfCurrentMarkdownInBody.push(index)\n }\n\n const indexToReplaceInBody: number | undefined = indexesOfCurrentMarkdownInBody[replaceIndex]\n if (indexToReplaceInBody === undefined) return\n\n const endReplaceIndex: number = indexToReplaceInBody + currentMarkdown.length\n\n // replace the current markdown with the new markdown\n const newBody: string =\n body.slice(0, indexToReplaceInBody) + newMarkdown + body.slice(endReplaceIndex)\n\n if (!newBody) return\n\n updateComment(activity, newBody, activity.files)\n }\n\n const handleRefClick = (ref: {\n entityId: string\n entityType: DetailsPanelEntityType\n activityId: string\n }) => {\n const { entityId, entityType, activityId } = ref\n const supportedTypes = ['version', 'task', 'folder']\n\n if (!entityType || !supportedTypes.includes(entityType))\n return console.log('Entity type not supported yet')\n\n if (!entityId || !entityType || !projectName) return console.log('No entity id or type found')\n\n // open the slide out\n openSlideOut({ entityId, entityType, projectName })\n // set highlighted activity\n setHighlightedActivities([activityId])\n }\n\n const handleFileExpand = ({ index, activityId }: { index: number; activityId: string }) => {\n const previewableFiles = Object.values(transformedActivitiesData)\n .reverse()\n .filter((a) => a.activityType == 'comment')\n .map((a) => ({\n id: a.activityId,\n files: a.files.filter((file: any) => isFilePreviewable(file.mime, file.ext)),\n }))\n .filter((a) => a.files.length > 0)\n\n // open image callback\n onOpenImage?.({ files: previewableFiles, activityId, index, projectName })\n }\n\n const loadingPlaceholders = useMemo(() => getLoadingPlaceholders(10), [])\n\n const lastVersionReview = useLastVersionReview({\n projectName,\n enabled: versionReview,\n entityIds: entities.map(e => e.id),\n activities: transformedActivitiesData,\n loadingActivities: isLoadingNew,\n userName,\n })\n\n let warningMessage\n\n return (\n <>\n <Styled.FeedContainer className=\"feed\">\n {warningMessage && (\n <Styled.Warning>\n <Icon icon=\"info\" />\n {warningMessage}\n </Styled.Warning>\n )}\n <TabHeaderAndFilters\n label=\"Activity Feed\"\n filters={feedFilters}\n currentFilter={feedFilter}\n onFilterChange={setFeedFilter}\n isLoading={isLoadingNew}\n />\n <Styled.FeedContent ref={feedRef} className={clsx({ loading: isLoadingNew }, 'no-shimmer')}>\n {isLoadingNew\n ? loadingPlaceholders\n : transformedActivitiesData.map((activity) => (\n <ActivityItem\n key={activity.activityId}\n activity={activity}\n onCheckChange={handleCommentChecked}\n onDelete={deleteComment}\n onUpdate={async (value, files, _refs, data) =>\n await updateComment(activity, value, files, data)\n }\n projectInfo={projectInfo}\n projectName={projectName}\n entityType={entityType}\n onReferenceClick={handleRefClick}\n createdAts={entities.map((e) => e.createdAt)}\n onFileExpand={handleFileExpand}\n showOrigin={entities.length > 1}\n filter={feedFilter}\n editProps={{\n projectName,\n entities: entities,\n entityType,\n }}\n isHighlighted={highlightedActivities.includes(activity.activityId)}\n readOnly={readOnly}\n statuses={statuses}\n isSlideOut={isSlideOut}\n isGuest={isGuest}\n />\n ))}\n {/* message when no versions published */}\n {transformedActivitiesData.length === 0 &&\n isVersionsFilter &&\n !hasCommentLikeFilter &&\n !isLoadingNew && (\n <EmptyPlaceholder message=\"No versions published yet\" icon=\"layers\" />\n )}\n {hasNextPage && loadNextPage && (\n <InView\n root={feedRef.current}\n onChange={(inView) => inView && loadNextPage()}\n rootMargin={'400px 0px 0px 0px'}\n >\n <Styled.LoadMore style={{ height: 0 }} onClick={() => loadNextPage()}>\n {isLoadingNextPage ? 'Loading more...' : 'Click to load more'}\n </Styled.LoadMore>\n </InView>\n )}\n </Styled.FeedContent>\n {!hideCommentInput && (\n <CommentInput\n initValue={null}\n onSubmit={submitComment}\n isOpen={editingId === FEED_NEW_COMMENT}\n onClose={() => setEditingId(null)}\n onOpen={() => setEditingId(FEED_NEW_COMMENT)}\n disabled={disabled}\n isLoading={isLoadingNew || !entities.length || isSaving}\n versionReview={versionReview}\n lastOwnVersionReview={lastVersionReview}\n onReview={submitReview}\n />\n )}\n </Styled.FeedContainer>\n </>\n )\n}\n"],"names":["activitiesLast","feedFilters","Feed","disabled","readOnly","statuses","entityListId","isSlideOut","versionReview","projectName","entities","entityType","editingId","projectInfo","setEditingId","userName","activitiesData","isLoadingNew","isLoadingNextPage","loadNextPage","hasNextPage","users","feedFilter","setFeedFilter","isGuest","useFeedContext","openSlideOut","highlightedActivities","setHighlightedActivities","onOpenImage","setFeedAnnotations","user","useDetailsPanelContext","isVersionsFilter","c","hasActiveFilters","hasCommentLikeFilter","projectPermissions","isLoadingPermissions","useGetMyProjectPermissionsQuery","hideCommentInput","activitiesWithMergedAnnotations","useMemo","mergeAnnotationAttachments","useEffect","annotations","activity","a","transformedActivitiesData","useTransformActivities","feedRef","useRef","useScrollOnInputOpen","FEED_NEW_COMMENT","useSaveScrollPos","useScrollToHighlighted","submitCommentMutation","updateComment","deleteComment","submitReviewMutation","isSaving","useCommentMutations","submitComment","useCallback","value","files","data","submitReview","feedback","handleCommentChecked","target","checked","currentMarkdown","newMarkdown","body","taskIndex","li","replaceIndex","markdown","index","indexesOfCurrentMarkdownInBody","indexToReplaceInBody","endReplaceIndex","newBody","handleRefClick","ref","entityId","activityId","handleFileExpand","previewableFiles","file","isFilePreviewable","loadingPlaceholders","getLoadingPlaceholders","lastVersionReview","useLastVersionReview","jsxs","Styled.FeedContainer","jsx","TabHeaderAndFilters","Styled.FeedContent","clsx","ActivityItem","_refs","e","EmptyPlaceholder","InView","inView","Styled.LoadMore","CommentInput"],"mappings":"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"}
|