@clickview/lite 0.50.0-rc.8 → 0.50.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/bundles.json +2 -2
- package/dist/css/{lite-app-f2595ac365.css → lite-app-cf9b57ee91.css} +1 -1
- package/dist/scripts/{1617-d6c1d47afe-lite.chunk.js → 1617-3cf9199cb1-lite.chunk.js} +2 -2
- package/dist/scripts/{1617-d6c1d47afe-lite.chunk.js.map → 1617-3cf9199cb1-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3012-1cde12ab3d-lite.chunk.js → 3012-08307aac0e-lite.chunk.js} +2 -2
- package/dist/scripts/{3012-1cde12ab3d-lite.chunk.js.map → 3012-08307aac0e-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3020-97e3d647ab-lite.chunk.js → 3020-9f647705a0-lite.chunk.js} +2 -2
- package/dist/scripts/{3020-97e3d647ab-lite.chunk.js.map → 3020-9f647705a0-lite.chunk.js.map} +1 -1
- package/dist/scripts/5974-ec9007f42b-lite.chunk.js +2 -0
- package/dist/scripts/5974-ec9007f42b-lite.chunk.js.map +1 -0
- package/dist/scripts/7115-18b0e390de-lite.chunk.js +2 -0
- package/dist/scripts/7115-18b0e390de-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-9111dc8132.min.js → bundle-48ad415564.min.js} +3 -3
- package/dist/scripts/bundle-48ad415564.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/5974-215374f364-lite.chunk.js +0 -2
- package/dist/scripts/5974-215374f364-lite.chunk.js.map +0 -1
- package/dist/scripts/7115-8510dcd735-lite.chunk.js +0 -2
- package/dist/scripts/7115-8510dcd735-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-9111dc8132.min.js.map +0 -1
- /package/dist/scripts/{bundle-9111dc8132.min.js.LICENSE.txt → bundle-48ad415564.min.js.LICENSE.txt} +0 -0
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5974],{72535:(e,t,r)=>{r.d(t,{Z:()=>c});var n=r(70680),a=r(20354),o=r(31949),l=r(64818),s=r(88630),i=r(47288);function c(e,t){var r,c,u=(0,n.I0)(),m=a.a.useBasicFetch(o.N.currentUser()),d=a.a.useBasicFetch(m.data&&s.F.getClassroom(e,m.data.id)),p=a.a.useBasicFetch(i.N.getUser(t)),f=d.data.enrolments,h=null===(c=null===(r=null==f?void 0:f.data)||void 0===r?void 0:r.find((function(e){var r;return(null===(r=e.user.id)||void 0===r?void 0:r.toString())===(null==t?void 0:t.toString())})))||void 0===c?void 0:c.id;return{classroom:d.data,hasLoaded:d.hasCompleted&&p.hasCompleted,teacherName:l.l.getFullName(p.data),revoke:function(t,r){if(h){var n=s.F.revokeOwnership(e,h,t,r);a.a.fetch(u,n)}else r()},assign:function(t,r){if(h){var n=s.F.assignAsOwner(e,h,t,r);a.a.fetch(u,n)}else r()}}}},5974:(e,t,r)=>{r.r(t),r.d(t,{AssignAsOwnerView:()=>h});var n=r(32735),a=r(23481),o=r(49985),l=r(65858),s=r(9111),i=r(13876),c=r(83345),u=r(69883),m=r(72535);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var p="classrooms.assignAsOwner",f=a.T.encloseNamespace(p);function h(e){var t,r,a=(t=n.useState(!1),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,l,s=[],i=!0,c=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;i=!1}else for(;!(i=(n=o.call(r)).done)&&(s.push(n.value),s.length!==t);i=!0);}catch(e){c=!0,a=e}finally{try{if(!i&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(c)throw a}}return s}}(t,r)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=a[0],v=a[1],g=(0,m.Z)(e.classroomId,e.teacherId),y=g.classroom,w=g.hasLoaded,b=g.teacherName,E=g.assign,k=(0,u.Z)();function A(){k.success(f("success",{escapeText:!0,teacher:b,classroom:y.name})),o.k.logUserAction({id:e.teacherId,classroomId:y.id},{actionType:l.Vw.Promote,entity:l.py.User,descriptor:l.iF.Classroom,workflowPhase:l.eu.Complete,location:l.LZ.Popup}),e.closePopup()}function C(){k.error(f("error",{escapeText:!0,teacher:b,classroom:y.name})),e.closePopup()}return n.createElement(s.G,{closePopup:e.closePopup,title:f("title"),showLoadingSpinner:!w},n.createElement("p",{className:"mb-0"},n.createElement(c.x,{namespace:p,phrase:"info",options:{teacher:b}})),n.createElement("ul",null,n.createElement("li",null,n.createElement(c.x,{namespace:p,phrase:"infoPoint1"})),n.createElement("li",null,n.createElement(c.x,{namespace:p,phrase:"infoPoint2"})),n.createElement("li",null,n.createElement(c.x,{namespace:p,phrase:"infoPoint3"}))),n.createElement(i.u,null,n.createElement(i.u.Cancel,{onClick:e.closePopup}),n.createElement(i.u.Submit,{onClick:function(){v(!0),E(A,C)},variant:"dark",text:f("assignOwner"),showSpinner:h})))}}}]);
|
|
2
|
-
//# sourceMappingURL=5974-215374f364-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/5974-215374f364-lite.chunk.js","mappings":"0MAWM,SAAUA,EAA6BC,EAAqBC,G,QAC1DC,GAAW,UAEXC,EAAc,kBAAkC,mBAChDC,EAAY,kBAAgCD,EAAYE,MAC5D,iBAA+BL,EAAaG,EAAYE,KAAKC,KACzDC,EAAU,kBAA2B,YAA4BN,IAEjEO,EAAaJ,EAAUC,KAAKG,WAE5BC,EAAiG,QAA5E,EAAgB,QAAhB,EAAAD,aAAU,EAAVA,EAAYH,YAAI,eAAEK,MAAK,SAAAC,GAAI,MAAC,OAAS,QAAT,EAAAA,EAAEC,KAAKN,UAAE,eAAEO,eAAeZ,aAAS,EAATA,EAAWY,WAAU,WAAC,eAAEP,GAwBzG,MAAO,CACLF,UAAWA,EAAUC,KACrBS,UAAWV,EAAUW,cAAgBR,EAAQQ,aAC7CC,YAAa,gBAAuBT,EAAQF,MAC5CY,OA1BsB,SAACC,EAAwBC,GAC/C,GAAKV,EAAL,CAKA,IAAMW,EAAU,oBAAkCpB,EAAaS,EAAoBS,EAAWC,GAE9F,UAAajB,EAAUkB,EAJtB,MAFCD,GAOJ,EAkBEE,OAhBsB,SAACH,EAAwBC,GAC/C,GAAKV,EAAL,CAKA,IAAMW,EAAU,kBAAgCpB,EAAaS,EAAoBS,EAAWC,GAE5F,UAAajB,EAAUkB,EAJtB,MAFCD,GAOJ,EASF,C,qQCrCA,IAAMG,EAAY,2BACZC,EAAY,qBAAiCD,GAO7C,SAAUE,EAAkBC,GAChC,I,IAAyE,G,EAArB,YAAe,G,EAAM,E,o4BAAjEC,EAAiB,KAAEC,EAAoB,KAE/C,GAAuE,OACrEF,EAAMzB,YACNyB,EAAMxB,WAFAG,EAAS,EAATA,UAAWU,EAAS,EAATA,UAAWE,EAAW,EAAXA,YAAqBY,EAAe,EAAvBP,OAKrCQ,GAAS,SAQf,SAASX,IACPW,EAAOC,QAAQP,EAAU,UAAW,CAClCQ,YAAY,EACZxB,QAASS,EACTZ,UAAWA,EAAU4B,QAGvB,kBAA8B,CAC5B1B,GAAImB,EAAMxB,UACVD,YAAaI,EAAUE,IACtB,CACD2B,WAAY,aACZC,OAAQ,UACRC,WAAY,eACZC,cAAe,cACfC,SAAU,aAGZZ,EAAMa,YACR,CAEA,SAASnB,IACPU,EAAOU,MAAMhB,EAAU,QAAS,CAC9BQ,YAAY,EACZxB,QAASS,EACTZ,UAAWA,EAAU4B,QAGvBP,EAAMa,YACR,CAGA,OACE,gBAAC,IAAK,CAACA,WAAYb,EAAMa,WAAYE,MAAOjB,EAAU,SAAUkB,oBAAqB3B,GACnF,qBAAG4B,UAAU,QACX,gBAAC,IAAI,CAACpB,UAAWA,EAAWqB,OAAO,OAAOC,QAAS,CAAErC,QAASS,MAGhE,0BACE,0BAAI,gBAAC,IAAI,CAACM,UAAWA,EAAWqB,OAAO,gBACvC,0BAAI,gBAAC,IAAI,CAACrB,UAAWA,EAAWqB,OAAO,gBACvC,0BAAI,gBAAC,IAAI,CAACrB,UAAWA,EAAWqB,OAAO,iBAGzC,gBAAC,IAAY,KACX,gBAAC,WAAmB,CAACE,QAASpB,EAAMa,aACpC,gBAAC,WAAmB,CAClBO,QArDR,WACElB,GAAqB,GAErBC,EAAgBV,EAAWC,EAC7B,EAkDQ2B,QAAQ,OACRC,KAAMxB,EAAU,eAChByB,YAAatB,KAKvB,C","sources":["file:///app/packages/projects/lite/src/apps/classrooms/hooks/useClassroomTeacherEnrolment.ts","file:///app/packages/projects/lite/src/apps/classrooms/views/assign-as-owner/AssignAsOwnerView.tsx"],"sourcesContent":["import { useDispatch } from 'react-redux';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Classroom, CurrentUser, User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\n\nexport function useClassroomTeacherEnrolment(classroomId: string, teacherId: string) {\n const dispatch = useDispatch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const classroom = Flight.useBasicFetch<Classroom>(currentUser.data &&\n ClassroomRequests.getClassroom(classroomId, currentUser.data.id));\n const teacher = Flight.useBasicFetch<User>(UserManagerRequests.getUser(teacherId));\n\n const enrolments = classroom.data.enrolments;\n\n const teacherEnrolmentId = enrolments?.data?.find(e => e.user.id?.toString() === teacherId?.toString())?.id;\n\n const revokeOwnership = (onSuccess?: () => void, onError?: () => void) => {\n if (!teacherEnrolmentId) {\n onError();\n return;\n }\n\n const request = ClassroomRequests.revokeOwnership(classroomId, teacherEnrolmentId, onSuccess, onError);\n\n Flight.fetch(dispatch, request);\n };\n\n const assignOwnership = (onSuccess?: () => void, onError?: () => void) => {\n if (!teacherEnrolmentId) {\n onError();\n return;\n }\n\n const request = ClassroomRequests.assignAsOwner(classroomId, teacherEnrolmentId, onSuccess, onError);\n\n Flight.fetch(dispatch, request);\n };\n\n return {\n classroom: classroom.data,\n hasLoaded: classroom.hasCompleted && teacher.hasCompleted,\n teacherName: UserHelper.getFullName(teacher.data),\n revoke: revokeOwnership,\n assign: assignOwnership\n };\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AssocDescriptor, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PropsWithPopupViewProps } from 'libs/shared/interfaces';\n\nimport { useClassroomTeacherEnrolment } from 'apps/classrooms/hooks/useClassroomTeacherEnrolment';\n\nconst namespace = 'classrooms.assignAsOwner';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AssignAsOwnerViewProps {\n classroomId: string;\n teacherId: string;\n}\n\nexport function AssignAsOwnerView(props: PropsWithPopupViewProps<AssignAsOwnerViewProps>): JSX.Element {\n const [ showButtonSpinner, setShowButtonSpinner ] = React.useState(false);\n\n const { classroom, hasLoaded, teacherName, assign: assignOwnership } = useClassroomTeacherEnrolment(\n props.classroomId,\n props.teacherId\n );\n\n const alerts = useAlerts();\n\n function assignOwner(): void {\n setShowButtonSpinner(true);\n\n assignOwnership(onSuccess, onError);\n }\n\n function onSuccess(): void {\n alerts.success(getPhrase('success', {\n escapeText: true,\n teacher: teacherName,\n classroom: classroom.name\n }));\n\n AnalyticsHelper.logUserAction({\n id: props.teacherId,\n classroomId: classroom.id\n }, {\n actionType: UserAction.Promote,\n entity: EntityType.User,\n descriptor: AssocDescriptor.Classroom,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n\n props.closePopup();\n }\n\n function onError(): void {\n alerts.error(getPhrase('error', {\n escapeText: true,\n teacher: teacherName,\n classroom: classroom.name\n }));\n\n props.closePopup();\n }\n\n\n return (\n <Popup closePopup={props.closePopup} title={getPhrase('title')} showLoadingSpinner={!hasLoaded}>\n <p className='mb-0'>\n <Text namespace={namespace} phrase='info' options={{ teacher: teacherName }} />\n </p>\n\n <ul>\n <li><Text namespace={namespace} phrase='infoPoint1' /></li>\n <li><Text namespace={namespace} phrase='infoPoint2' /></li>\n <li><Text namespace={namespace} phrase='infoPoint3' /></li>\n </ul>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n onClick={assignOwner}\n variant='dark'\n text={getPhrase('assignOwner')}\n showSpinner={showButtonSpinner}\n />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["useClassroomTeacherEnrolment","classroomId","teacherId","dispatch","currentUser","classroom","data","id","teacher","enrolments","teacherEnrolmentId","find","e","user","toString","hasLoaded","hasCompleted","teacherName","revoke","onSuccess","onError","request","assign","namespace","getPhrase","AssignAsOwnerView","props","showButtonSpinner","setShowButtonSpinner","assignOwnership","alerts","success","escapeText","name","actionType","entity","descriptor","workflowPhase","location","closePopup","error","title","showLoadingSpinner","className","phrase","options","onClick","variant","text","showSpinner"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7115],{72535:(e,t,r)=>{r.d(t,{Z:()=>s});var n=r(70680),a=r(20354),o=r(31949),l=r(64818),c=r(88630),i=r(47288);function s(e,t){var r,s,u=(0,n.I0)(),m=a.a.useBasicFetch(o.N.currentUser()),p=a.a.useBasicFetch(m.data&&c.F.getClassroom(e,m.data.id)),d=a.a.useBasicFetch(i.N.getUser(t)),f=p.data.enrolments,h=null===(s=null===(r=null==f?void 0:f.data)||void 0===r?void 0:r.find((function(e){var r;return(null===(r=e.user.id)||void 0===r?void 0:r.toString())===(null==t?void 0:t.toString())})))||void 0===s?void 0:s.id;return{classroom:p.data,hasLoaded:p.hasCompleted&&d.hasCompleted,teacherName:l.l.getFullName(d.data),revoke:function(t,r){if(h){var n=c.F.revokeOwnership(e,h,t,r);a.a.fetch(u,n)}else r()},assign:function(t,r){if(h){var n=c.F.assignAsOwner(e,h,t,r);a.a.fetch(u,n)}else r()}}}},67115:(e,t,r)=>{r.r(t),r.d(t,{RevokeOwnershipView:()=>h});var n=r(32735),a=r(23481),o=r(49985),l=r(65858),c=r(9111),i=r(13876),s=r(83345),u=r(69883),m=r(72535);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var d="classrooms.revokeOwnership",f=a.T.encloseNamespace(d);function h(e){var t,r,a=(t=n.useState(!1),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,l,c=[],i=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;i=!1}else for(;!(i=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{if(!i&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,r)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?p(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=a[0],v=a[1],y=(0,m.Z)(e.classroomId,e.teacherId),k=y.classroom,w=y.hasLoaded,g=y.teacherName,b=y.revoke,E=(0,u.Z)();function C(){E.success(f("success",{escapeText:!0,teacher:g,classroom:k.name})),o.k.logUserAction({id:e.teacherId,classroomId:k.id},{actionType:l.Vw.Demote,entity:l.py.User,descriptor:l.iF.Classroom,workflowPhase:l.eu.Complete,location:l.LZ.Popup}),e.closePopup()}function S(){E.error(f("error",{escapeText:!0,teacher:g,classroom:k.name})),e.closePopup()}return n.createElement(c.G,{closePopup:e.closePopup,title:f("title"),showLoadingSpinner:!w},n.createElement("p",{className:"mb-0"},n.createElement(s.x,{namespace:d,phrase:"info",options:{teacher:g}})),n.createElement("ul",null,n.createElement("li",null,n.createElement(s.x,{namespace:d,phrase:"infoPoint1"})),n.createElement("li",null,n.createElement(s.x,{namespace:d,phrase:"infoPoint2"})),n.createElement("li",null,n.createElement(s.x,{namespace:d,phrase:"infoPoint3"}))),n.createElement(i.u,null,n.createElement(i.u.Cancel,{onClick:e.closePopup}),n.createElement(i.u.Submit,{onClick:function(){v(!0),b(C,S)},variant:"dark",text:f("revoke"),showSpinner:h})))}}}]);
|
|
2
|
-
//# sourceMappingURL=7115-8510dcd735-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/7115-8510dcd735-lite.chunk.js","mappings":"0MAWM,SAAUA,EAA6BC,EAAqBC,G,QAC1DC,GAAW,UAEXC,EAAc,kBAAkC,mBAChDC,EAAY,kBAAgCD,EAAYE,MAC5D,iBAA+BL,EAAaG,EAAYE,KAAKC,KACzDC,EAAU,kBAA2B,YAA4BN,IAEjEO,EAAaJ,EAAUC,KAAKG,WAE5BC,EAAiG,QAA5E,EAAgB,QAAhB,EAAAD,aAAU,EAAVA,EAAYH,YAAI,eAAEK,MAAK,SAAAC,GAAI,MAAC,OAAS,QAAT,EAAAA,EAAEC,KAAKN,UAAE,eAAEO,eAAeZ,aAAS,EAATA,EAAWY,WAAU,WAAC,eAAEP,GAwBzG,MAAO,CACLF,UAAWA,EAAUC,KACrBS,UAAWV,EAAUW,cAAgBR,EAAQQ,aAC7CC,YAAa,gBAAuBT,EAAQF,MAC5CY,OA1BsB,SAACC,EAAwBC,GAC/C,GAAKV,EAAL,CAKA,IAAMW,EAAU,oBAAkCpB,EAAaS,EAAoBS,EAAWC,GAE9F,UAAajB,EAAUkB,EAJtB,MAFCD,GAOJ,EAkBEE,OAhBsB,SAACH,EAAwBC,GAC/C,GAAKV,EAAL,CAKA,IAAMW,EAAU,kBAAgCpB,EAAaS,EAAoBS,EAAWC,GAE5F,UAAajB,EAAUkB,EAJtB,MAFCD,GAOJ,EASF,C,wQCrCA,IAAMG,EAAY,6BACZC,EAAY,qBAAiCD,GAO7C,SAAUE,EAAoBC,GAClC,I,IAAyE,G,EAArB,YAAe,G,EAAM,E,o4BAAjEC,EAAiB,KAAEC,EAAoB,KAE/C,GAAsD,OACpDF,EAAMzB,YACNyB,EAAMxB,WAFAG,EAAS,EAATA,UAAWU,EAAS,EAATA,UAAWE,EAAW,EAAXA,YAAaC,EAAM,EAANA,OAKrCW,GAAS,SAOf,SAASV,IACPU,EAAOC,QAAQN,EAAU,UAAW,CAClCO,YAAY,EACZvB,QAASS,EACTZ,UAAWA,EAAU2B,QAGvB,kBAA8B,CAC5BzB,GAAImB,EAAMxB,UACVD,YAAaI,EAAUE,IACtB,CACD0B,WAAY,YACZC,OAAQ,UACRC,WAAY,eACZC,cAAe,cACfC,SAAU,aAGZX,EAAMY,YACR,CAEA,SAASlB,IACPS,EAAOU,MAAMf,EAAU,QAAS,CAC9BO,YAAY,EACZvB,QAASS,EACTZ,UAAWA,EAAU2B,QAGvBN,EAAMY,YACR,CAGA,OACE,gBAAC,IAAK,CAACA,WAAYZ,EAAMY,WAAYE,MAAOhB,EAAU,SAAUiB,oBAAqB1B,GACnF,qBAAG2B,UAAU,QACX,gBAAC,IAAI,CAACnB,UAAWA,EAAWoB,OAAO,OAAOC,QAAS,CAAEpC,QAASS,MAGhE,0BACE,0BAAI,gBAAC,IAAI,CAACM,UAAWA,EAAWoB,OAAO,gBACvC,0BAAI,gBAAC,IAAI,CAACpB,UAAWA,EAAWoB,OAAO,gBACvC,0BAAI,gBAAC,IAAI,CAACpB,UAAWA,EAAWoB,OAAO,iBAGzC,gBAAC,IAAY,KACX,gBAAC,WAAmB,CAACE,QAASnB,EAAMY,aACpC,gBAAC,WAAmB,CAACO,QAnD3B,WACEjB,GAAqB,GACrBV,EAAOC,EAAWC,EACpB,EAgDqD0B,QAAQ,OAAOC,KAAMvB,EAAU,UAAWwB,YAAarB,KAI9G,C","sources":["file:///app/packages/projects/lite/src/apps/classrooms/hooks/useClassroomTeacherEnrolment.ts","file:///app/packages/projects/lite/src/apps/classrooms/views/revoke-ownership/RevokeOwnershipView.tsx"],"sourcesContent":["import { useDispatch } from 'react-redux';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Classroom, CurrentUser, User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\n\nexport function useClassroomTeacherEnrolment(classroomId: string, teacherId: string) {\n const dispatch = useDispatch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const classroom = Flight.useBasicFetch<Classroom>(currentUser.data &&\n ClassroomRequests.getClassroom(classroomId, currentUser.data.id));\n const teacher = Flight.useBasicFetch<User>(UserManagerRequests.getUser(teacherId));\n\n const enrolments = classroom.data.enrolments;\n\n const teacherEnrolmentId = enrolments?.data?.find(e => e.user.id?.toString() === teacherId?.toString())?.id;\n\n const revokeOwnership = (onSuccess?: () => void, onError?: () => void) => {\n if (!teacherEnrolmentId) {\n onError();\n return;\n }\n\n const request = ClassroomRequests.revokeOwnership(classroomId, teacherEnrolmentId, onSuccess, onError);\n\n Flight.fetch(dispatch, request);\n };\n\n const assignOwnership = (onSuccess?: () => void, onError?: () => void) => {\n if (!teacherEnrolmentId) {\n onError();\n return;\n }\n\n const request = ClassroomRequests.assignAsOwner(classroomId, teacherEnrolmentId, onSuccess, onError);\n\n Flight.fetch(dispatch, request);\n };\n\n return {\n classroom: classroom.data,\n hasLoaded: classroom.hasCompleted && teacher.hasCompleted,\n teacherName: UserHelper.getFullName(teacher.data),\n revoke: revokeOwnership,\n assign: assignOwnership\n };\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AssocDescriptor, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PropsWithPopupViewProps } from 'libs/shared/interfaces';\n\nimport { useClassroomTeacherEnrolment } from 'apps/classrooms/hooks/useClassroomTeacherEnrolment';\n\nconst namespace = 'classrooms.revokeOwnership';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface RevokeOwnershipViewProps {\n classroomId: string;\n teacherId: string;\n}\n\nexport function RevokeOwnershipView(props: PropsWithPopupViewProps<RevokeOwnershipViewProps>): JSX.Element {\n const [ showButtonSpinner, setShowButtonSpinner ] = React.useState(false);\n\n const { classroom, hasLoaded, teacherName, revoke } = useClassroomTeacherEnrolment(\n props.classroomId,\n props.teacherId\n );\n\n const alerts = useAlerts();\n\n function revokeOwnership(): void {\n setShowButtonSpinner(true);\n revoke(onSuccess, onError);\n }\n\n function onSuccess(): void {\n alerts.success(getPhrase('success', {\n escapeText: true,\n teacher: teacherName,\n classroom: classroom.name\n }));\n\n AnalyticsHelper.logUserAction({\n id: props.teacherId,\n classroomId: classroom.id\n }, {\n actionType: UserAction.Demote,\n entity: EntityType.User,\n descriptor: AssocDescriptor.Classroom,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Popup\n });\n\n props.closePopup();\n }\n\n function onError(): void {\n alerts.error(getPhrase('error', {\n escapeText: true,\n teacher: teacherName,\n classroom: classroom.name\n }));\n\n props.closePopup();\n }\n\n\n return (\n <Popup closePopup={props.closePopup} title={getPhrase('title')} showLoadingSpinner={!hasLoaded}>\n <p className='mb-0'>\n <Text namespace={namespace} phrase='info' options={{ teacher: teacherName }} />\n </p>\n\n <ul>\n <li><Text namespace={namespace} phrase='infoPoint1' /></li>\n <li><Text namespace={namespace} phrase='infoPoint2' /></li>\n <li><Text namespace={namespace} phrase='infoPoint3' /></li>\n </ul>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit onClick={revokeOwnership} variant='dark' text={getPhrase('revoke')} showSpinner={showButtonSpinner} />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["useClassroomTeacherEnrolment","classroomId","teacherId","dispatch","currentUser","classroom","data","id","teacher","enrolments","teacherEnrolmentId","find","e","user","toString","hasLoaded","hasCompleted","teacherName","revoke","onSuccess","onError","request","assign","namespace","getPhrase","RevokeOwnershipView","props","showButtonSpinner","setShowButtonSpinner","alerts","success","escapeText","name","actionType","entity","descriptor","workflowPhase","location","closePopup","error","title","showLoadingSpinner","className","phrase","options","onClick","variant","text","showSpinner"],"sourceRoot":""}
|