@cratis/showrunner.usher.react 0.0.0-bootstrap.0 → 0.0.0-stage
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/README.md +2 -71
- package/package.json +4 -83
- package/Buttons/MyIssuesButton.tsx +0 -78
- package/Buttons/ReportButton.tsx +0 -51
- package/Buttons/buttonModels.ts +0 -55
- package/Buttons/index.ts +0 -6
- package/Correlation/CorrelationTracker.ts +0 -51
- package/Correlation/index.ts +0 -5
- package/Correlation/withCorrelationIdHeader.ts +0 -44
- package/Icons.tsx +0 -29
- package/Issues/IssueView/AccessPanel.tsx +0 -85
- package/Issues/IssueView/GrantAccessDialog.tsx +0 -56
- package/Issues/IssueView/IdentityPanel.tsx +0 -38
- package/Issues/IssueView/IssueActions.tsx +0 -52
- package/Issues/IssueView/IssueConversationPanel.tsx +0 -89
- package/Issues/IssueView/IssueHeader.tsx +0 -69
- package/Issues/IssueView/IssueView.tsx +0 -74
- package/Issues/IssueView/QuestionBanner.tsx +0 -27
- package/Issues/IssueView/ReopenIssueDialog.tsx +0 -37
- package/Issues/IssueView/ShareIdentityDialog.tsx +0 -37
- package/Issues/IssueView/StatusStrip.tsx +0 -42
- package/Issues/IssueView/SupportSessions.tsx +0 -59
- package/Issues/IssueView/index.ts +0 -15
- package/Issues/MyIssues/IssueList.tsx +0 -78
- package/Issues/MyIssues/MyIssuesDialog.tsx +0 -64
- package/Issues/MyIssues/MyIssuesNavigation.ts +0 -61
- package/Issues/MyIssues/index.ts +0 -6
- package/Issues/MyIssuesList.ts +0 -33
- package/Issues/accessStatus.ts +0 -68
- package/Issues/conversationMessages.ts +0 -136
- package/Issues/index.ts +0 -12
- package/Issues/issueStates.ts +0 -69
- package/Issues/sessionActivity.ts +0 -43
- package/Issues/useAccessStatus.ts +0 -24
- package/Issues/webAddress.ts +0 -22
- package/Labels/UsherLabels.ts +0 -365
- package/Labels/defaultUsherLabels.ts +0 -178
- package/Labels/format.ts +0 -13
- package/Labels/index.ts +0 -7
- package/Labels/resolveLabels.ts +0 -36
- package/Provider/UsherBoundary.tsx +0 -30
- package/Provider/UsherContext.ts +0 -109
- package/Provider/UsherProvider.tsx +0 -134
- package/Provider/index.ts +0 -7
- package/Provider/useUsher.ts +0 -72
- package/Reporting/AccessChoice.ts +0 -107
- package/Reporting/AccessFields.tsx +0 -74
- package/Reporting/AccessNotice.tsx +0 -33
- package/Reporting/ReportErrorDialog.tsx +0 -94
- package/Reporting/ReportIssueDialog.tsx +0 -80
- package/Reporting/ReportLimits.ts +0 -24
- package/Reporting/ReportSent.ts +0 -12
- package/Reporting/SentWithReport.tsx +0 -37
- package/Reporting/TechnicalDetails.tsx +0 -60
- package/Reporting/durationOptions.ts +0 -31
- package/Reporting/formatLocation.ts +0 -27
- package/Reporting/index.ts +0 -16
- package/Reporting/reportValues.ts +0 -150
- package/Reporting/useAccessChoice.ts +0 -53
- package/dist/cjs/Buttons/MyIssuesButton.d.ts +0 -14
- package/dist/cjs/Buttons/MyIssuesButton.d.ts.map +0 -1
- package/dist/cjs/Buttons/MyIssuesButton.js +0 -76
- package/dist/cjs/Buttons/MyIssuesButton.js.map +0 -1
- package/dist/cjs/Buttons/ReportButton.d.ts +0 -8
- package/dist/cjs/Buttons/ReportButton.d.ts.map +0 -1
- package/dist/cjs/Buttons/ReportButton.js +0 -34
- package/dist/cjs/Buttons/ReportButton.js.map +0 -1
- package/dist/cjs/Buttons/buttonModels.d.ts +0 -10
- package/dist/cjs/Buttons/buttonModels.d.ts.map +0 -1
- package/dist/cjs/Buttons/buttonModels.js +0 -44
- package/dist/cjs/Buttons/buttonModels.js.map +0 -1
- package/dist/cjs/Buttons/index.d.ts +0 -4
- package/dist/cjs/Buttons/index.d.ts.map +0 -1
- package/dist/cjs/Correlation/CorrelationTracker.d.ts +0 -10
- package/dist/cjs/Correlation/CorrelationTracker.d.ts.map +0 -1
- package/dist/cjs/Correlation/CorrelationTracker.js +0 -50
- package/dist/cjs/Correlation/CorrelationTracker.js.map +0 -1
- package/dist/cjs/Correlation/index.d.ts +0 -3
- package/dist/cjs/Correlation/index.d.ts.map +0 -1
- package/dist/cjs/Correlation/withCorrelationIdHeader.d.ts +0 -6
- package/dist/cjs/Correlation/withCorrelationIdHeader.d.ts.map +0 -1
- package/dist/cjs/Correlation/withCorrelationIdHeader.js +0 -39
- package/dist/cjs/Correlation/withCorrelationIdHeader.js.map +0 -1
- package/dist/cjs/Icons.d.ts +0 -4
- package/dist/cjs/Icons.d.ts.map +0 -1
- package/dist/cjs/Icons.js +0 -53
- package/dist/cjs/Icons.js.map +0 -1
- package/dist/cjs/Issues/IssueView/AccessPanel.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/AccessPanel.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/AccessPanel.js +0 -124
- package/dist/cjs/Issues/IssueView/AccessPanel.js.map +0 -1
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.js +0 -56
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.js.map +0 -1
- package/dist/cjs/Issues/IssueView/IdentityPanel.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/IdentityPanel.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/IdentityPanel.js +0 -45
- package/dist/cjs/Issues/IssueView/IdentityPanel.js.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueActions.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/IssueActions.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueActions.js +0 -58
- package/dist/cjs/Issues/IssueView/IssueActions.js.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.js +0 -97
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.js.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueHeader.d.ts +0 -7
- package/dist/cjs/Issues/IssueView/IssueHeader.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueHeader.js +0 -94
- package/dist/cjs/Issues/IssueView/IssueHeader.js.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueView.d.ts +0 -7
- package/dist/cjs/Issues/IssueView/IssueView.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueView.js +0 -85
- package/dist/cjs/Issues/IssueView/IssueView.js.map +0 -1
- package/dist/cjs/Issues/IssueView/QuestionBanner.d.ts +0 -5
- package/dist/cjs/Issues/IssueView/QuestionBanner.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/QuestionBanner.js +0 -24
- package/dist/cjs/Issues/IssueView/QuestionBanner.js.map +0 -1
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.js +0 -34
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.js.map +0 -1
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.js +0 -32
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.js.map +0 -1
- package/dist/cjs/Issues/IssueView/StatusStrip.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/StatusStrip.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/StatusStrip.js +0 -31
- package/dist/cjs/Issues/IssueView/StatusStrip.js.map +0 -1
- package/dist/cjs/Issues/IssueView/SupportSessions.d.ts +0 -7
- package/dist/cjs/Issues/IssueView/SupportSessions.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/SupportSessions.js +0 -62
- package/dist/cjs/Issues/IssueView/SupportSessions.js.map +0 -1
- package/dist/cjs/Issues/IssueView/index.d.ts +0 -13
- package/dist/cjs/Issues/IssueView/index.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssues/IssueList.d.ts +0 -7
- package/dist/cjs/Issues/MyIssues/IssueList.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssues/IssueList.js +0 -92
- package/dist/cjs/Issues/MyIssues/IssueList.js.map +0 -1
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.d.ts +0 -7
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.js +0 -79
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.js.map +0 -1
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.d.ts +0 -21
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.js +0 -52
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.js.map +0 -1
- package/dist/cjs/Issues/MyIssues/index.d.ts +0 -4
- package/dist/cjs/Issues/MyIssues/index.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssuesList.d.ts +0 -7
- package/dist/cjs/Issues/MyIssuesList.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssuesList.js +0 -33
- package/dist/cjs/Issues/MyIssuesList.js.map +0 -1
- package/dist/cjs/Issues/accessStatus.d.ts +0 -13
- package/dist/cjs/Issues/accessStatus.d.ts.map +0 -1
- package/dist/cjs/Issues/accessStatus.js +0 -60
- package/dist/cjs/Issues/accessStatus.js.map +0 -1
- package/dist/cjs/Issues/conversationMessages.d.ts +0 -14
- package/dist/cjs/Issues/conversationMessages.d.ts.map +0 -1
- package/dist/cjs/Issues/conversationMessages.js +0 -131
- package/dist/cjs/Issues/conversationMessages.js.map +0 -1
- package/dist/cjs/Issues/index.d.ts +0 -10
- package/dist/cjs/Issues/index.d.ts.map +0 -1
- package/dist/cjs/Issues/issueStates.d.ts +0 -12
- package/dist/cjs/Issues/issueStates.d.ts.map +0 -1
- package/dist/cjs/Issues/issueStates.js +0 -86
- package/dist/cjs/Issues/issueStates.js.map +0 -1
- package/dist/cjs/Issues/sessionActivity.d.ts +0 -8
- package/dist/cjs/Issues/sessionActivity.d.ts.map +0 -1
- package/dist/cjs/Issues/sessionActivity.js +0 -39
- package/dist/cjs/Issues/sessionActivity.js.map +0 -1
- package/dist/cjs/Issues/useAccessStatus.d.ts +0 -4
- package/dist/cjs/Issues/useAccessStatus.d.ts.map +0 -1
- package/dist/cjs/Issues/useAccessStatus.js +0 -30
- package/dist/cjs/Issues/useAccessStatus.js.map +0 -1
- package/dist/cjs/Issues/webAddress.d.ts +0 -2
- package/dist/cjs/Issues/webAddress.d.ts.map +0 -1
- package/dist/cjs/Issues/webAddress.js +0 -24
- package/dist/cjs/Issues/webAddress.js.map +0 -1
- package/dist/cjs/Labels/UsherLabels.d.ts +0 -177
- package/dist/cjs/Labels/UsherLabels.d.ts.map +0 -1
- package/dist/cjs/Labels/defaultUsherLabels.d.ts +0 -3
- package/dist/cjs/Labels/defaultUsherLabels.d.ts.map +0 -1
- package/dist/cjs/Labels/defaultUsherLabels.js +0 -179
- package/dist/cjs/Labels/defaultUsherLabels.js.map +0 -1
- package/dist/cjs/Labels/format.d.ts +0 -2
- package/dist/cjs/Labels/format.d.ts.map +0 -1
- package/dist/cjs/Labels/format.js +0 -15
- package/dist/cjs/Labels/format.js.map +0 -1
- package/dist/cjs/Labels/index.d.ts +0 -5
- package/dist/cjs/Labels/index.d.ts.map +0 -1
- package/dist/cjs/Labels/resolveLabels.d.ts +0 -3
- package/dist/cjs/Labels/resolveLabels.d.ts.map +0 -1
- package/dist/cjs/Labels/resolveLabels.js +0 -35
- package/dist/cjs/Labels/resolveLabels.js.map +0 -1
- package/dist/cjs/Provider/UsherBoundary.d.ts +0 -6
- package/dist/cjs/Provider/UsherBoundary.d.ts.map +0 -1
- package/dist/cjs/Provider/UsherBoundary.js +0 -24
- package/dist/cjs/Provider/UsherBoundary.js.map +0 -1
- package/dist/cjs/Provider/UsherContext.d.ts +0 -24
- package/dist/cjs/Provider/UsherContext.d.ts.map +0 -1
- package/dist/cjs/Provider/UsherContext.js +0 -41
- package/dist/cjs/Provider/UsherContext.js.map +0 -1
- package/dist/cjs/Provider/UsherProvider.d.ts +0 -14
- package/dist/cjs/Provider/UsherProvider.d.ts.map +0 -1
- package/dist/cjs/Provider/UsherProvider.js +0 -122
- package/dist/cjs/Provider/UsherProvider.js.map +0 -1
- package/dist/cjs/Provider/index.d.ts +0 -5
- package/dist/cjs/Provider/index.d.ts.map +0 -1
- package/dist/cjs/Provider/useUsher.d.ts +0 -13
- package/dist/cjs/Provider/useUsher.d.ts.map +0 -1
- package/dist/cjs/Provider/useUsher.js +0 -31
- package/dist/cjs/Provider/useUsher.js.map +0 -1
- package/dist/cjs/Reporting/AccessChoice.d.ts +0 -13
- package/dist/cjs/Reporting/AccessChoice.d.ts.map +0 -1
- package/dist/cjs/Reporting/AccessChoice.js +0 -113
- package/dist/cjs/Reporting/AccessChoice.js.map +0 -1
- package/dist/cjs/Reporting/AccessFields.d.ts +0 -12
- package/dist/cjs/Reporting/AccessFields.d.ts.map +0 -1
- package/dist/cjs/Reporting/AccessFields.js +0 -79
- package/dist/cjs/Reporting/AccessFields.js.map +0 -1
- package/dist/cjs/Reporting/AccessNotice.d.ts +0 -7
- package/dist/cjs/Reporting/AccessNotice.d.ts.map +0 -1
- package/dist/cjs/Reporting/AccessNotice.js +0 -28
- package/dist/cjs/Reporting/AccessNotice.js.map +0 -1
- package/dist/cjs/Reporting/ReportErrorDialog.d.ts +0 -9
- package/dist/cjs/Reporting/ReportErrorDialog.d.ts.map +0 -1
- package/dist/cjs/Reporting/ReportErrorDialog.js +0 -87
- package/dist/cjs/Reporting/ReportErrorDialog.js.map +0 -1
- package/dist/cjs/Reporting/ReportIssueDialog.d.ts +0 -8
- package/dist/cjs/Reporting/ReportIssueDialog.d.ts.map +0 -1
- package/dist/cjs/Reporting/ReportIssueDialog.js +0 -81
- package/dist/cjs/Reporting/ReportIssueDialog.js.map +0 -1
- package/dist/cjs/Reporting/ReportLimits.d.ts +0 -8
- package/dist/cjs/Reporting/ReportLimits.d.ts.map +0 -1
- package/dist/cjs/Reporting/ReportLimits.js +0 -19
- package/dist/cjs/Reporting/ReportLimits.js.map +0 -1
- package/dist/cjs/Reporting/ReportSent.d.ts +0 -5
- package/dist/cjs/Reporting/ReportSent.d.ts.map +0 -1
- package/dist/cjs/Reporting/SentWithReport.d.ts +0 -7
- package/dist/cjs/Reporting/SentWithReport.d.ts.map +0 -1
- package/dist/cjs/Reporting/SentWithReport.js +0 -40
- package/dist/cjs/Reporting/SentWithReport.js.map +0 -1
- package/dist/cjs/Reporting/TechnicalDetails.d.ts +0 -9
- package/dist/cjs/Reporting/TechnicalDetails.d.ts.map +0 -1
- package/dist/cjs/Reporting/TechnicalDetails.js +0 -75
- package/dist/cjs/Reporting/TechnicalDetails.js.map +0 -1
- package/dist/cjs/Reporting/durationOptions.d.ts +0 -9
- package/dist/cjs/Reporting/durationOptions.d.ts.map +0 -1
- package/dist/cjs/Reporting/durationOptions.js +0 -29
- package/dist/cjs/Reporting/durationOptions.js.map +0 -1
- package/dist/cjs/Reporting/formatLocation.d.ts +0 -7
- package/dist/cjs/Reporting/formatLocation.d.ts.map +0 -1
- package/dist/cjs/Reporting/formatLocation.js +0 -23
- package/dist/cjs/Reporting/formatLocation.js.map +0 -1
- package/dist/cjs/Reporting/index.d.ts +0 -14
- package/dist/cjs/Reporting/index.d.ts.map +0 -1
- package/dist/cjs/Reporting/reportValues.d.ts +0 -22
- package/dist/cjs/Reporting/reportValues.d.ts.map +0 -1
- package/dist/cjs/Reporting/reportValues.js +0 -124
- package/dist/cjs/Reporting/reportValues.js.map +0 -1
- package/dist/cjs/Reporting/useAccessChoice.d.ts +0 -13
- package/dist/cjs/Reporting/useAccessChoice.d.ts.map +0 -1
- package/dist/cjs/Reporting/useAccessChoice.js +0 -41
- package/dist/cjs/Reporting/useAccessChoice.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -8
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -133
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/esm/Buttons/MyIssuesButton.d.ts +0 -14
- package/dist/esm/Buttons/MyIssuesButton.d.ts.map +0 -1
- package/dist/esm/Buttons/MyIssuesButton.js +0 -73
- package/dist/esm/Buttons/MyIssuesButton.js.map +0 -1
- package/dist/esm/Buttons/ReportButton.d.ts +0 -8
- package/dist/esm/Buttons/ReportButton.d.ts.map +0 -1
- package/dist/esm/Buttons/ReportButton.js +0 -32
- package/dist/esm/Buttons/ReportButton.js.map +0 -1
- package/dist/esm/Buttons/buttonModels.d.ts +0 -10
- package/dist/esm/Buttons/buttonModels.d.ts.map +0 -1
- package/dist/esm/Buttons/buttonModels.js +0 -41
- package/dist/esm/Buttons/buttonModels.js.map +0 -1
- package/dist/esm/Buttons/index.d.ts +0 -4
- package/dist/esm/Buttons/index.d.ts.map +0 -1
- package/dist/esm/Buttons/index.js +0 -4
- package/dist/esm/Buttons/index.js.map +0 -1
- package/dist/esm/Correlation/CorrelationTracker.d.ts +0 -10
- package/dist/esm/Correlation/CorrelationTracker.d.ts.map +0 -1
- package/dist/esm/Correlation/CorrelationTracker.js +0 -48
- package/dist/esm/Correlation/CorrelationTracker.js.map +0 -1
- package/dist/esm/Correlation/index.d.ts +0 -3
- package/dist/esm/Correlation/index.d.ts.map +0 -1
- package/dist/esm/Correlation/index.js +0 -3
- package/dist/esm/Correlation/index.js.map +0 -1
- package/dist/esm/Correlation/withCorrelationIdHeader.d.ts +0 -6
- package/dist/esm/Correlation/withCorrelationIdHeader.d.ts.map +0 -1
- package/dist/esm/Correlation/withCorrelationIdHeader.js +0 -36
- package/dist/esm/Correlation/withCorrelationIdHeader.js.map +0 -1
- package/dist/esm/Icons.d.ts +0 -4
- package/dist/esm/Icons.d.ts.map +0 -1
- package/dist/esm/Icons.js +0 -49
- package/dist/esm/Icons.js.map +0 -1
- package/dist/esm/Issues/IssueView/AccessPanel.d.ts +0 -6
- package/dist/esm/Issues/IssueView/AccessPanel.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/AccessPanel.js +0 -122
- package/dist/esm/Issues/IssueView/AccessPanel.js.map +0 -1
- package/dist/esm/Issues/IssueView/GrantAccessDialog.d.ts +0 -6
- package/dist/esm/Issues/IssueView/GrantAccessDialog.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/GrantAccessDialog.js +0 -54
- package/dist/esm/Issues/IssueView/GrantAccessDialog.js.map +0 -1
- package/dist/esm/Issues/IssueView/IdentityPanel.d.ts +0 -6
- package/dist/esm/Issues/IssueView/IdentityPanel.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/IdentityPanel.js +0 -43
- package/dist/esm/Issues/IssueView/IdentityPanel.js.map +0 -1
- package/dist/esm/Issues/IssueView/IssueActions.d.ts +0 -6
- package/dist/esm/Issues/IssueView/IssueActions.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/IssueActions.js +0 -56
- package/dist/esm/Issues/IssueView/IssueActions.js.map +0 -1
- package/dist/esm/Issues/IssueView/IssueConversationPanel.d.ts +0 -6
- package/dist/esm/Issues/IssueView/IssueConversationPanel.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/IssueConversationPanel.js +0 -95
- package/dist/esm/Issues/IssueView/IssueConversationPanel.js.map +0 -1
- package/dist/esm/Issues/IssueView/IssueHeader.d.ts +0 -7
- package/dist/esm/Issues/IssueView/IssueHeader.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/IssueHeader.js +0 -92
- package/dist/esm/Issues/IssueView/IssueHeader.js.map +0 -1
- package/dist/esm/Issues/IssueView/IssueView.d.ts +0 -7
- package/dist/esm/Issues/IssueView/IssueView.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/IssueView.js +0 -83
- package/dist/esm/Issues/IssueView/IssueView.js.map +0 -1
- package/dist/esm/Issues/IssueView/QuestionBanner.d.ts +0 -5
- package/dist/esm/Issues/IssueView/QuestionBanner.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/QuestionBanner.js +0 -22
- package/dist/esm/Issues/IssueView/QuestionBanner.js.map +0 -1
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.d.ts +0 -6
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.js +0 -32
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.js.map +0 -1
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.d.ts +0 -6
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.js +0 -30
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.js.map +0 -1
- package/dist/esm/Issues/IssueView/StatusStrip.d.ts +0 -6
- package/dist/esm/Issues/IssueView/StatusStrip.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/StatusStrip.js +0 -29
- package/dist/esm/Issues/IssueView/StatusStrip.js.map +0 -1
- package/dist/esm/Issues/IssueView/SupportSessions.d.ts +0 -7
- package/dist/esm/Issues/IssueView/SupportSessions.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/SupportSessions.js +0 -60
- package/dist/esm/Issues/IssueView/SupportSessions.js.map +0 -1
- package/dist/esm/Issues/IssueView/index.d.ts +0 -13
- package/dist/esm/Issues/IssueView/index.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/index.js +0 -13
- package/dist/esm/Issues/IssueView/index.js.map +0 -1
- package/dist/esm/Issues/MyIssues/IssueList.d.ts +0 -7
- package/dist/esm/Issues/MyIssues/IssueList.d.ts.map +0 -1
- package/dist/esm/Issues/MyIssues/IssueList.js +0 -90
- package/dist/esm/Issues/MyIssues/IssueList.js.map +0 -1
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.d.ts +0 -7
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.d.ts.map +0 -1
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.js +0 -77
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.js.map +0 -1
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.d.ts +0 -21
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.d.ts.map +0 -1
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.js +0 -49
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.js.map +0 -1
- package/dist/esm/Issues/MyIssues/index.d.ts +0 -4
- package/dist/esm/Issues/MyIssues/index.d.ts.map +0 -1
- package/dist/esm/Issues/MyIssues/index.js +0 -4
- package/dist/esm/Issues/MyIssues/index.js.map +0 -1
- package/dist/esm/Issues/MyIssuesList.d.ts +0 -7
- package/dist/esm/Issues/MyIssuesList.d.ts.map +0 -1
- package/dist/esm/Issues/MyIssuesList.js +0 -29
- package/dist/esm/Issues/MyIssuesList.js.map +0 -1
- package/dist/esm/Issues/accessStatus.d.ts +0 -13
- package/dist/esm/Issues/accessStatus.d.ts.map +0 -1
- package/dist/esm/Issues/accessStatus.js +0 -54
- package/dist/esm/Issues/accessStatus.js.map +0 -1
- package/dist/esm/Issues/conversationMessages.d.ts +0 -14
- package/dist/esm/Issues/conversationMessages.d.ts.map +0 -1
- package/dist/esm/Issues/conversationMessages.js +0 -125
- package/dist/esm/Issues/conversationMessages.js.map +0 -1
- package/dist/esm/Issues/index.d.ts +0 -10
- package/dist/esm/Issues/index.d.ts.map +0 -1
- package/dist/esm/Issues/index.js +0 -10
- package/dist/esm/Issues/index.js.map +0 -1
- package/dist/esm/Issues/issueStates.d.ts +0 -12
- package/dist/esm/Issues/issueStates.d.ts.map +0 -1
- package/dist/esm/Issues/issueStates.js +0 -81
- package/dist/esm/Issues/issueStates.js.map +0 -1
- package/dist/esm/Issues/sessionActivity.d.ts +0 -8
- package/dist/esm/Issues/sessionActivity.d.ts.map +0 -1
- package/dist/esm/Issues/sessionActivity.js +0 -37
- package/dist/esm/Issues/sessionActivity.js.map +0 -1
- package/dist/esm/Issues/useAccessStatus.d.ts +0 -4
- package/dist/esm/Issues/useAccessStatus.d.ts.map +0 -1
- package/dist/esm/Issues/useAccessStatus.js +0 -28
- package/dist/esm/Issues/useAccessStatus.js.map +0 -1
- package/dist/esm/Issues/webAddress.d.ts +0 -2
- package/dist/esm/Issues/webAddress.d.ts.map +0 -1
- package/dist/esm/Issues/webAddress.js +0 -22
- package/dist/esm/Issues/webAddress.js.map +0 -1
- package/dist/esm/Labels/UsherLabels.d.ts +0 -177
- package/dist/esm/Labels/UsherLabels.d.ts.map +0 -1
- package/dist/esm/Labels/UsherLabels.js +0 -2
- package/dist/esm/Labels/UsherLabels.js.map +0 -1
- package/dist/esm/Labels/defaultUsherLabels.d.ts +0 -3
- package/dist/esm/Labels/defaultUsherLabels.d.ts.map +0 -1
- package/dist/esm/Labels/defaultUsherLabels.js +0 -177
- package/dist/esm/Labels/defaultUsherLabels.js.map +0 -1
- package/dist/esm/Labels/format.d.ts +0 -2
- package/dist/esm/Labels/format.d.ts.map +0 -1
- package/dist/esm/Labels/format.js +0 -13
- package/dist/esm/Labels/format.js.map +0 -1
- package/dist/esm/Labels/index.d.ts +0 -5
- package/dist/esm/Labels/index.d.ts.map +0 -1
- package/dist/esm/Labels/index.js +0 -5
- package/dist/esm/Labels/index.js.map +0 -1
- package/dist/esm/Labels/resolveLabels.d.ts +0 -3
- package/dist/esm/Labels/resolveLabels.d.ts.map +0 -1
- package/dist/esm/Labels/resolveLabels.js +0 -33
- package/dist/esm/Labels/resolveLabels.js.map +0 -1
- package/dist/esm/Provider/UsherBoundary.d.ts +0 -6
- package/dist/esm/Provider/UsherBoundary.d.ts.map +0 -1
- package/dist/esm/Provider/UsherBoundary.js +0 -22
- package/dist/esm/Provider/UsherBoundary.js.map +0 -1
- package/dist/esm/Provider/UsherContext.d.ts +0 -24
- package/dist/esm/Provider/UsherContext.d.ts.map +0 -1
- package/dist/esm/Provider/UsherContext.js +0 -36
- package/dist/esm/Provider/UsherContext.js.map +0 -1
- package/dist/esm/Provider/UsherProvider.d.ts +0 -14
- package/dist/esm/Provider/UsherProvider.d.ts.map +0 -1
- package/dist/esm/Provider/UsherProvider.js +0 -120
- package/dist/esm/Provider/UsherProvider.js.map +0 -1
- package/dist/esm/Provider/index.d.ts +0 -5
- package/dist/esm/Provider/index.d.ts.map +0 -1
- package/dist/esm/Provider/index.js +0 -5
- package/dist/esm/Provider/index.js.map +0 -1
- package/dist/esm/Provider/useUsher.d.ts +0 -13
- package/dist/esm/Provider/useUsher.d.ts.map +0 -1
- package/dist/esm/Provider/useUsher.js +0 -29
- package/dist/esm/Provider/useUsher.js.map +0 -1
- package/dist/esm/Reporting/AccessChoice.d.ts +0 -13
- package/dist/esm/Reporting/AccessChoice.d.ts.map +0 -1
- package/dist/esm/Reporting/AccessChoice.js +0 -106
- package/dist/esm/Reporting/AccessChoice.js.map +0 -1
- package/dist/esm/Reporting/AccessFields.d.ts +0 -12
- package/dist/esm/Reporting/AccessFields.d.ts.map +0 -1
- package/dist/esm/Reporting/AccessFields.js +0 -77
- package/dist/esm/Reporting/AccessFields.js.map +0 -1
- package/dist/esm/Reporting/AccessNotice.d.ts +0 -7
- package/dist/esm/Reporting/AccessNotice.d.ts.map +0 -1
- package/dist/esm/Reporting/AccessNotice.js +0 -26
- package/dist/esm/Reporting/AccessNotice.js.map +0 -1
- package/dist/esm/Reporting/ReportErrorDialog.d.ts +0 -9
- package/dist/esm/Reporting/ReportErrorDialog.d.ts.map +0 -1
- package/dist/esm/Reporting/ReportErrorDialog.js +0 -85
- package/dist/esm/Reporting/ReportErrorDialog.js.map +0 -1
- package/dist/esm/Reporting/ReportIssueDialog.d.ts +0 -8
- package/dist/esm/Reporting/ReportIssueDialog.d.ts.map +0 -1
- package/dist/esm/Reporting/ReportIssueDialog.js +0 -79
- package/dist/esm/Reporting/ReportIssueDialog.js.map +0 -1
- package/dist/esm/Reporting/ReportLimits.d.ts +0 -8
- package/dist/esm/Reporting/ReportLimits.d.ts.map +0 -1
- package/dist/esm/Reporting/ReportLimits.js +0 -17
- package/dist/esm/Reporting/ReportLimits.js.map +0 -1
- package/dist/esm/Reporting/ReportSent.d.ts +0 -5
- package/dist/esm/Reporting/ReportSent.d.ts.map +0 -1
- package/dist/esm/Reporting/ReportSent.js +0 -2
- package/dist/esm/Reporting/ReportSent.js.map +0 -1
- package/dist/esm/Reporting/SentWithReport.d.ts +0 -7
- package/dist/esm/Reporting/SentWithReport.d.ts.map +0 -1
- package/dist/esm/Reporting/SentWithReport.js +0 -38
- package/dist/esm/Reporting/SentWithReport.js.map +0 -1
- package/dist/esm/Reporting/TechnicalDetails.d.ts +0 -9
- package/dist/esm/Reporting/TechnicalDetails.d.ts.map +0 -1
- package/dist/esm/Reporting/TechnicalDetails.js +0 -73
- package/dist/esm/Reporting/TechnicalDetails.js.map +0 -1
- package/dist/esm/Reporting/durationOptions.d.ts +0 -9
- package/dist/esm/Reporting/durationOptions.d.ts.map +0 -1
- package/dist/esm/Reporting/durationOptions.js +0 -27
- package/dist/esm/Reporting/durationOptions.js.map +0 -1
- package/dist/esm/Reporting/formatLocation.d.ts +0 -7
- package/dist/esm/Reporting/formatLocation.d.ts.map +0 -1
- package/dist/esm/Reporting/formatLocation.js +0 -21
- package/dist/esm/Reporting/formatLocation.js.map +0 -1
- package/dist/esm/Reporting/index.d.ts +0 -14
- package/dist/esm/Reporting/index.d.ts.map +0 -1
- package/dist/esm/Reporting/index.js +0 -14
- package/dist/esm/Reporting/index.js.map +0 -1
- package/dist/esm/Reporting/reportValues.d.ts +0 -22
- package/dist/esm/Reporting/reportValues.d.ts.map +0 -1
- package/dist/esm/Reporting/reportValues.js +0 -116
- package/dist/esm/Reporting/reportValues.js.map +0 -1
- package/dist/esm/Reporting/useAccessChoice.d.ts +0 -13
- package/dist/esm/Reporting/useAccessChoice.d.ts.map +0 -1
- package/dist/esm/Reporting/useAccessChoice.js +0 -39
- package/dist/esm/Reporting/useAccessChoice.js.map +0 -1
- package/dist/esm/index.d.ts +0 -8
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -48
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/package.json +0 -3
- package/index.ts +0 -10
- package/styles.css +0 -320
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { useDialog } from '@cratis/arc.react/dialogs';
|
|
5
|
-
import { Button } from '@cratis/components/Common';
|
|
6
|
-
import { IssueConversation, IssueState } from '@cratis/showrunner.usher';
|
|
7
|
-
import { useId } from 'react';
|
|
8
|
-
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
9
|
-
import { ShareIdentityDialog } from './ShareIdentityDialog.js';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Props for {@link IdentityPanel}.
|
|
13
|
-
*/
|
|
14
|
-
export interface IdentityPanelProps {
|
|
15
|
-
/** The issue. */
|
|
16
|
-
issue: IssueConversation;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Shows whether support knows who the reporter is, and lets them share it when it does not.
|
|
21
|
-
*/
|
|
22
|
-
export const IdentityPanel = ({ issue }: IdentityPanelProps) => {
|
|
23
|
-
const labels = useUsherLabels();
|
|
24
|
-
const headingId = useId();
|
|
25
|
-
const [ShareDialog, showShareDialog] = useDialog(ShareIdentityDialog);
|
|
26
|
-
const canShare = !issue.identityShared && issue.state !== IssueState.withdrawn;
|
|
27
|
-
|
|
28
|
-
return (
|
|
29
|
-
<section className='usher-panel' aria-labelledby={headingId}>
|
|
30
|
-
<h4 id={headingId} className='usher-panel__heading'>{labels.identity.heading}</h4>
|
|
31
|
-
<p className='usher-panel__text'>{issue.identityShared ? labels.identity.known : labels.identity.unknown}</p>
|
|
32
|
-
{canShare && (
|
|
33
|
-
<Button variant='outline' size='small' label={labels.identity.share} onClick={() => void showShareDialog({ issueId: issue.id })} />
|
|
34
|
-
)}
|
|
35
|
-
<ShareDialog />
|
|
36
|
-
</section>
|
|
37
|
-
);
|
|
38
|
-
};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { DialogButtons, DialogResult, useConfirmationDialog, useDialog } from '@cratis/arc.react/dialogs';
|
|
5
|
-
import { Button } from '@cratis/components/Common';
|
|
6
|
-
import { toastCommandResult } from '@cratis/components/Notifications';
|
|
7
|
-
import { IssueConversation, IssueState, WithdrawIssue } from '@cratis/showrunner.usher';
|
|
8
|
-
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
9
|
-
import { isClosed } from '../issueStates.js';
|
|
10
|
-
import { ReopenIssueDialog } from './ReopenIssueDialog.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Props for {@link IssueActions}.
|
|
14
|
-
*/
|
|
15
|
-
export interface IssueActionsProps {
|
|
16
|
-
/** The issue. */
|
|
17
|
-
issue: IssueConversation;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* What the reporter can do with an issue: reopen it once resolved, and withdraw it while it is open.
|
|
22
|
-
*/
|
|
23
|
-
export const IssueActions = ({ issue }: IssueActionsProps) => {
|
|
24
|
-
const labels = useUsherLabels();
|
|
25
|
-
const [ReopenDialog, showReopenDialog] = useDialog(ReopenIssueDialog);
|
|
26
|
-
const [confirm] = useConfirmationDialog();
|
|
27
|
-
const [withdrawIssue] = WithdrawIssue.use();
|
|
28
|
-
const canReopen = issue.state === IssueState.resolved;
|
|
29
|
-
const canWithdraw = !isClosed(issue.state);
|
|
30
|
-
|
|
31
|
-
const withdraw = async () => {
|
|
32
|
-
const answer = await confirm(labels.actions.withdrawTitle, labels.actions.withdrawMessage, DialogButtons.YesNo);
|
|
33
|
-
if (answer !== DialogResult.Yes) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
withdrawIssue.issueId = issue.id;
|
|
38
|
-
toastCommandResult(await withdrawIssue.execute(), { showSuccess: false });
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
if (!canReopen && !canWithdraw) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return (
|
|
46
|
-
<div className='usher-issue-actions'>
|
|
47
|
-
{canReopen && <Button variant='outline' size='small' label={labels.actions.reopen} onClick={() => void showReopenDialog({ issueId: issue.id })} />}
|
|
48
|
-
{canWithdraw && <Button variant='ghost' tone='critical' size='small' label={labels.actions.withdraw} onClick={() => void withdraw()} />}
|
|
49
|
-
<ReopenDialog />
|
|
50
|
-
</div>
|
|
51
|
-
);
|
|
52
|
-
};
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { ChatConversation } from '@cratis/components/Chat';
|
|
5
|
-
import { Message, Tag } from '@cratis/components/Display';
|
|
6
|
-
import { toastCommandResult } from '@cratis/components/Notifications';
|
|
7
|
-
import { AddDetails, AnswerQuestion, ConversationEntryKind, IssueConversation, IssueState } from '@cratis/showrunner.usher';
|
|
8
|
-
import { useMemo } from 'react';
|
|
9
|
-
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
10
|
-
import { authorOf, ConversationMessage, conversationMessages, isOpenQuestion } from '../conversationMessages.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Props for {@link IssueConversationPanel}.
|
|
14
|
-
*/
|
|
15
|
-
export interface IssueConversationPanelProps {
|
|
16
|
-
/** The issue. */
|
|
17
|
-
issue: IssueConversation;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* The conversation on an issue. A message the reporter sends answers support's open question, or adds details when
|
|
22
|
-
* there is none. Once the reporter withdrew the issue, the composer is disabled: nothing more can be added to it.
|
|
23
|
-
*/
|
|
24
|
-
export const IssueConversationPanel = ({ issue }: IssueConversationPanelProps) => {
|
|
25
|
-
const labels = useUsherLabels();
|
|
26
|
-
const [addDetails] = AddDetails.use();
|
|
27
|
-
const [answerQuestion] = AnswerQuestion.use();
|
|
28
|
-
const messages = useMemo(() => conversationMessages(issue.id, issue.entries ?? [], labels), [issue.id, issue.entries, labels]);
|
|
29
|
-
const openQuestionId = issue.openQuestion?.questionId;
|
|
30
|
-
const isWithdrawn = issue.state === IssueState.withdrawn;
|
|
31
|
-
|
|
32
|
-
const send = async (body: string) => {
|
|
33
|
-
if (isWithdrawn) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (isOpenQuestion(openQuestionId)) {
|
|
38
|
-
answerQuestion.issueId = issue.id;
|
|
39
|
-
answerQuestion.questionId = openQuestionId;
|
|
40
|
-
answerQuestion.answer = body;
|
|
41
|
-
toastCommandResult(await answerQuestion.execute(), { showSuccess: false });
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
addDetails.issueId = issue.id;
|
|
46
|
-
addDetails.details = body;
|
|
47
|
-
toastCommandResult(await addDetails.execute(), { showSuccess: false });
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const renderMessageExtra = (message: ConversationMessage) => {
|
|
51
|
-
if (message.kind !== ConversationEntryKind.questionAsked) {
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const isOpen = isOpenQuestion(openQuestionId) && openQuestionId.equals(message.questionId);
|
|
56
|
-
return (
|
|
57
|
-
<span className='usher-conversation__question-state'>
|
|
58
|
-
<Tag value={isOpen ? labels.issue.waitingForAnswer : labels.issue.answered} severity={isOpen ? 'warn' : 'success'} />
|
|
59
|
-
</span>
|
|
60
|
-
);
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
return (
|
|
64
|
-
<section className='usher-conversation' data-closed={isWithdrawn || undefined} aria-label={issue.title}>
|
|
65
|
-
<fieldset className='usher-conversation__fieldset' disabled={isWithdrawn}>
|
|
66
|
-
<ChatConversation<ConversationMessage>
|
|
67
|
-
messages={messages}
|
|
68
|
-
onSendMessage={body => void send(body)}
|
|
69
|
-
authorOf={authorId => authorOf(authorId, labels)}
|
|
70
|
-
renderMessageExtra={renderMessageExtra}
|
|
71
|
-
quickReply={false}
|
|
72
|
-
labels={{
|
|
73
|
-
empty: labels.conversation.empty,
|
|
74
|
-
timestamps: {
|
|
75
|
-
justNow: labels.conversation.justNow,
|
|
76
|
-
minutesAgo: labels.conversation.minutesAgo,
|
|
77
|
-
hoursAgo: labels.conversation.hoursAgo
|
|
78
|
-
},
|
|
79
|
-
composer: {
|
|
80
|
-
placeholder: isWithdrawn ? labels.issue.withdrawnPlaceholder : labels.issue.composerPlaceholder,
|
|
81
|
-
send: labels.conversation.send,
|
|
82
|
-
sendMessage: labels.conversation.send
|
|
83
|
-
}
|
|
84
|
-
}} />
|
|
85
|
-
</fieldset>
|
|
86
|
-
{isWithdrawn && <Message severity='secondary' text={labels.issue.withdrawnNotice} live={false} />}
|
|
87
|
-
</section>
|
|
88
|
-
);
|
|
89
|
-
};
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { Button } from '@cratis/components/Common';
|
|
5
|
-
import { Tag } from '@cratis/components/Display';
|
|
6
|
-
import { IssueConversation } from '@cratis/showrunner.usher';
|
|
7
|
-
import { format } from '../../Labels/index.js';
|
|
8
|
-
import { useUsherContext } from '../../Provider/UsherContext.js';
|
|
9
|
-
import { formatTime } from '../../Reporting/AccessChoice.js';
|
|
10
|
-
import { formatLocation } from '../../Reporting/formatLocation.js';
|
|
11
|
-
import { BackIcon } from '../../Icons.js';
|
|
12
|
-
import { stateBadgeFor } from '../issueStates.js';
|
|
13
|
-
import { isFixReleased } from '../MyIssuesList.js';
|
|
14
|
-
import { isWebAddress } from '../webAddress.js';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Props for {@link IssueHeader}.
|
|
18
|
-
*/
|
|
19
|
-
export interface IssueHeaderProps {
|
|
20
|
-
/** The issue. */
|
|
21
|
-
issue: IssueConversation;
|
|
22
|
-
|
|
23
|
-
/** Goes back to the list of issues; no back button when not given. */
|
|
24
|
-
onBack?: () => void;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* The header of an issue: its title and state, when and where it was reported, and what it is linked to.
|
|
29
|
-
*/
|
|
30
|
-
export const IssueHeader = ({ issue, onBack }: IssueHeaderProps) => {
|
|
31
|
-
const { labels, locale } = useUsherContext();
|
|
32
|
-
const badge = stateBadgeFor(issue.state, labels);
|
|
33
|
-
const reportedAt = issue.reportedAt instanceof Date ? issue.reportedAt : new Date(issue.reportedAt);
|
|
34
|
-
const location = formatLocation(issue.location, labels.common.locationSeparator, labels.common.unknownLocation);
|
|
35
|
-
const workItem = issue.workItem;
|
|
36
|
-
const hasWorkItem = (workItem?.reference ?? '').length > 0;
|
|
37
|
-
|
|
38
|
-
return (
|
|
39
|
-
<header className='usher-issue-header'>
|
|
40
|
-
{onBack && (
|
|
41
|
-
<Button variant='ghost' size='small' icon={<BackIcon />} onClick={onBack} label={labels.issue.back} />
|
|
42
|
-
)}
|
|
43
|
-
<div className='usher-issue-header__title-row'>
|
|
44
|
-
<h3 className='usher-issue-header__title'>{issue.title}</h3>
|
|
45
|
-
<Tag value={badge.label} severity={badge.severity} />
|
|
46
|
-
</div>
|
|
47
|
-
<p className='usher-issue-header__meta'>
|
|
48
|
-
{format(labels.issue.reported, { date: formatTime(reportedAt, locale) })} · {location}
|
|
49
|
-
</p>
|
|
50
|
-
{(issue.knownIssueTitle?.length > 0 || hasWorkItem) && (
|
|
51
|
-
<p className='usher-issue-header__links'>
|
|
52
|
-
{issue.knownIssueTitle?.length > 0 && (
|
|
53
|
-
<span>{labels.issue.knownIssue} <strong>{issue.knownIssueTitle}</strong></span>
|
|
54
|
-
)}
|
|
55
|
-
{hasWorkItem && (
|
|
56
|
-
<span>
|
|
57
|
-
{labels.issue.trackedIn}{' '}
|
|
58
|
-
{isWebAddress(workItem.url)
|
|
59
|
-
? <a href={workItem.url} target='_blank' rel='noreferrer'>{workItem.reference}</a>
|
|
60
|
-
: <strong>{workItem.reference}</strong>}
|
|
61
|
-
{' · '}
|
|
62
|
-
{isFixReleased(issue) ? format(labels.issue.fixedIn, { version: issue.fixedInVersion }) : labels.issue.notReleased}
|
|
63
|
-
</span>
|
|
64
|
-
)}
|
|
65
|
-
</p>
|
|
66
|
-
)}
|
|
67
|
-
</header>
|
|
68
|
-
);
|
|
69
|
-
};
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { Message } from '@cratis/components/Display';
|
|
5
|
-
import { Guid } from '@cratis/fundamentals';
|
|
6
|
-
import { ForIssue } from '@cratis/showrunner.usher';
|
|
7
|
-
import { UsherBoundary } from '../../Provider/UsherBoundary.js';
|
|
8
|
-
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
9
|
-
import { isOpenQuestion } from '../conversationMessages.js';
|
|
10
|
-
import { AccessPanel } from './AccessPanel.js';
|
|
11
|
-
import { IdentityPanel } from './IdentityPanel.js';
|
|
12
|
-
import { IssueActions } from './IssueActions.js';
|
|
13
|
-
import { IssueConversationPanel } from './IssueConversationPanel.js';
|
|
14
|
-
import { IssueHeader } from './IssueHeader.js';
|
|
15
|
-
import { QuestionBanner } from './QuestionBanner.js';
|
|
16
|
-
import { StatusStrip } from './StatusStrip.js';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Props for {@link IssueView}.
|
|
20
|
-
*/
|
|
21
|
-
export interface IssueViewProps {
|
|
22
|
-
/** The issue to show. */
|
|
23
|
-
issueId: Guid;
|
|
24
|
-
|
|
25
|
-
/** Goes back to the list of issues; no back button when not given. */
|
|
26
|
-
onBack?: () => void;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* One of the signed-in reporter's issues: its state, the conversation with support, who support knows the reporter
|
|
31
|
-
* is, support's access, and what the reporter can do with it. It stays current as support works on the issue.
|
|
32
|
-
* Usable on its own, such as on a page of the solution, or inside the my issues side sheet.
|
|
33
|
-
*/
|
|
34
|
-
export const IssueView = (props: IssueViewProps) => (
|
|
35
|
-
<UsherBoundary>
|
|
36
|
-
<IssueViewContent {...props} />
|
|
37
|
-
</UsherBoundary>
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
const IssueViewContent = ({ issueId, onBack }: IssueViewProps) => {
|
|
41
|
-
const labels = useUsherLabels();
|
|
42
|
-
const [result] = ForIssue.use({ issueId });
|
|
43
|
-
|
|
44
|
-
// The query answers with the issue or with nothing: an issue the reporter did not report, or one support's session
|
|
45
|
-
// is not for, is never sent.
|
|
46
|
-
const issue = result.data?.[0];
|
|
47
|
-
const isLoaded = result.hasData && issue?.id !== undefined;
|
|
48
|
-
|
|
49
|
-
if (!isLoaded) {
|
|
50
|
-
return (
|
|
51
|
-
<div className='usher-issue-view'>
|
|
52
|
-
<Message severity={result.isPerforming ? 'info' : 'secondary'} text={result.isPerforming ? labels.issue.loading : labels.issue.notFound} />
|
|
53
|
-
</div>
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const openQuestion = issue.openQuestion;
|
|
58
|
-
|
|
59
|
-
return (
|
|
60
|
-
<div className='usher-issue-view'>
|
|
61
|
-
<IssueHeader issue={issue} onBack={onBack} />
|
|
62
|
-
<StatusStrip state={issue.state} />
|
|
63
|
-
{isOpenQuestion(openQuestion?.questionId) && <QuestionBanner question={openQuestion.question} />}
|
|
64
|
-
<div className='usher-issue-view__body'>
|
|
65
|
-
<IssueConversationPanel issue={issue} />
|
|
66
|
-
<aside className='usher-issue-view__side'>
|
|
67
|
-
<IdentityPanel issue={issue} />
|
|
68
|
-
<AccessPanel issue={issue} />
|
|
69
|
-
<IssueActions issue={issue} />
|
|
70
|
-
</aside>
|
|
71
|
-
</div>
|
|
72
|
-
</div>
|
|
73
|
-
);
|
|
74
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { Message } from '@cratis/components/Display';
|
|
5
|
-
import { format } from '../../Labels/index.js';
|
|
6
|
-
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Props for {@link QuestionBanner}.
|
|
10
|
-
*/
|
|
11
|
-
export interface QuestionBannerProps {
|
|
12
|
-
/** What support asked. */
|
|
13
|
-
question: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Tells the reporter that support waits for an answer, and that their next message answers it.
|
|
18
|
-
*/
|
|
19
|
-
export const QuestionBanner = ({ question }: QuestionBannerProps) => {
|
|
20
|
-
const labels = useUsherLabels();
|
|
21
|
-
|
|
22
|
-
return (
|
|
23
|
-
<div className='usher-question-banner'>
|
|
24
|
-
<Message severity='warn' text={format(labels.issue.questionBanner, { question })} />
|
|
25
|
-
</div>
|
|
26
|
-
);
|
|
27
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { CommandDialog } from '@cratis/components/CommandDialog';
|
|
5
|
-
import { TextAreaField } from '@cratis/components/CommandForm';
|
|
6
|
-
import { DialogInitialFocus } from '@cratis/components/Dialogs';
|
|
7
|
-
import { Guid } from '@cratis/fundamentals';
|
|
8
|
-
import { ReopenIssue } from '@cratis/showrunner.usher';
|
|
9
|
-
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Props for {@link ReopenIssueDialog}.
|
|
13
|
-
*/
|
|
14
|
-
export interface ReopenIssueDialogProps {
|
|
15
|
-
/** The issue. */
|
|
16
|
-
issueId: Guid;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Lets the reporter reopen a resolved issue, saying why it is not fixed.
|
|
21
|
-
*/
|
|
22
|
-
export const ReopenIssueDialog = ({ issueId }: ReopenIssueDialogProps) => {
|
|
23
|
-
const labels = useUsherLabels();
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<CommandDialog<ReopenIssue>
|
|
27
|
-
command={ReopenIssue}
|
|
28
|
-
title={labels.actions.reopenTitle}
|
|
29
|
-
okLabel={labels.actions.reopen}
|
|
30
|
-
cancelLabel={labels.common.cancel}
|
|
31
|
-
closeAriaLabel={labels.common.close}
|
|
32
|
-
initialFocus={DialogInitialFocus.Content}
|
|
33
|
-
initialValues={{ issueId, reason: '' }}>
|
|
34
|
-
<TextAreaField<ReopenIssue> value={command => command.reason} title={labels.actions.reopenReason} rows={4} />
|
|
35
|
-
</CommandDialog>
|
|
36
|
-
);
|
|
37
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { CommandDialog } from '@cratis/components/CommandDialog';
|
|
5
|
-
import { DialogInitialFocus } from '@cratis/components/Dialogs';
|
|
6
|
-
import { Guid } from '@cratis/fundamentals';
|
|
7
|
-
import { ShareIdentity } from '@cratis/showrunner.usher';
|
|
8
|
-
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Props for {@link ShareIdentityDialog}.
|
|
12
|
-
*/
|
|
13
|
-
export interface ShareIdentityDialogProps {
|
|
14
|
-
/** The issue. */
|
|
15
|
-
issueId: Guid;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Asks the reporter to confirm that support may know who they are on an issue. Sharing cannot be undone, so the
|
|
20
|
-
* dialog opens with focus on cancel.
|
|
21
|
-
*/
|
|
22
|
-
export const ShareIdentityDialog = ({ issueId }: ShareIdentityDialogProps) => {
|
|
23
|
-
const labels = useUsherLabels();
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<CommandDialog<ShareIdentity>
|
|
27
|
-
command={ShareIdentity}
|
|
28
|
-
title={labels.identity.shareTitle}
|
|
29
|
-
okLabel={labels.identity.shareConfirm}
|
|
30
|
-
cancelLabel={labels.common.cancel}
|
|
31
|
-
closeAriaLabel={labels.common.close}
|
|
32
|
-
initialFocus={DialogInitialFocus.Cancel}
|
|
33
|
-
initialValues={{ issueId }}>
|
|
34
|
-
<p className='usher-dialog-text'>{labels.identity.shareDescription}</p>
|
|
35
|
-
</CommandDialog>
|
|
36
|
-
);
|
|
37
|
-
};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { IssueState } from '@cratis/showrunner.usher';
|
|
5
|
-
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
6
|
-
import { stateBadgeFor, statusStepOf, statusSteps } from '../issueStates.js';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Props for {@link StatusStrip}.
|
|
10
|
-
*/
|
|
11
|
-
export interface StatusStripProps {
|
|
12
|
-
/** The state the issue is in. */
|
|
13
|
-
state: IssueState;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Shows how far along an issue is, from reported to resolved. The step reached is marked as the current step.
|
|
18
|
-
*/
|
|
19
|
-
export const StatusStrip = ({ state }: StatusStripProps) => {
|
|
20
|
-
const labels = useUsherLabels();
|
|
21
|
-
const reached = statusStepOf(state);
|
|
22
|
-
const closedOtherwise = state === IssueState.wontFix || state === IssueState.withdrawn;
|
|
23
|
-
|
|
24
|
-
return (
|
|
25
|
-
<ol className='usher-status-strip'>
|
|
26
|
-
{statusSteps.map((step, index) => {
|
|
27
|
-
const isCurrent = index === reached;
|
|
28
|
-
const label = isCurrent && closedOtherwise ? stateBadgeFor(state, labels).label : stateBadgeFor(step, labels).label;
|
|
29
|
-
return (
|
|
30
|
-
<li
|
|
31
|
-
key={step}
|
|
32
|
-
className='usher-status-strip__step'
|
|
33
|
-
data-reached={index <= reached || undefined}
|
|
34
|
-
data-current={isCurrent || undefined}
|
|
35
|
-
aria-current={isCurrent ? 'step' : undefined}>
|
|
36
|
-
{label}
|
|
37
|
-
</li>
|
|
38
|
-
);
|
|
39
|
-
})}
|
|
40
|
-
</ol>
|
|
41
|
-
);
|
|
42
|
-
};
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { ConversationEntry, SupportSession } from '@cratis/showrunner.usher';
|
|
5
|
-
import { format } from '../../Labels/index.js';
|
|
6
|
-
import { useUsherContext } from '../../Provider/UsherContext.js';
|
|
7
|
-
import { formatClock, formatTime } from '../../Reporting/AccessChoice.js';
|
|
8
|
-
import { isSessionRunning } from '../accessStatus.js';
|
|
9
|
-
import { sessionActivityOf } from '../sessionActivity.js';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Props for {@link SupportSessions}.
|
|
13
|
-
*/
|
|
14
|
-
export interface SupportSessionsProps {
|
|
15
|
-
/** The sessions, oldest first. */
|
|
16
|
-
sessions: SupportSession[];
|
|
17
|
-
|
|
18
|
-
/** The entries of the conversation, to show what support did in each session. */
|
|
19
|
-
entries: ConversationEntry[];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Lists the sessions in which support signed in as the reporter, each with what support did as the reporter in it.
|
|
24
|
-
*/
|
|
25
|
-
export const SupportSessions = ({ sessions, entries }: SupportSessionsProps) => {
|
|
26
|
-
const { labels, locale } = useUsherContext();
|
|
27
|
-
|
|
28
|
-
if (sessions.length === 0) {
|
|
29
|
-
return <p className='usher-panel__text usher-panel__text--secondary'>{labels.accessPanel.noSessions}</p>;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return (
|
|
33
|
-
<div className='usher-sessions'>
|
|
34
|
-
<span className='usher-sessions__heading'>{labels.accessPanel.sessionsHeading}</span>
|
|
35
|
-
<ul className='usher-sessions__list'>
|
|
36
|
-
{sessions.map(session => {
|
|
37
|
-
const start = formatTime(asDate(session.startedAt), locale);
|
|
38
|
-
const end = isSessionRunning(session) ? labels.accessPanel.sessionRunning : formatClock(asDate(session.endedAt), locale);
|
|
39
|
-
const name = (session.author?.name ?? '').length > 0 ? session.author.name : labels.conversation.support;
|
|
40
|
-
const activity = sessionActivityOf(session, entries, labels.accessPanel.sessionActions);
|
|
41
|
-
return (
|
|
42
|
-
<li key={session.sessionId.toString()}>
|
|
43
|
-
{format(labels.accessPanel.session, { name, start, end })}
|
|
44
|
-
{activity.length > 0
|
|
45
|
-
? (
|
|
46
|
-
<ul className='usher-sessions__activity'>
|
|
47
|
-
{activity.map(action => <li key={action.entryId}>{action.text}</li>)}
|
|
48
|
-
</ul>
|
|
49
|
-
)
|
|
50
|
-
: <p className='usher-sessions__activity usher-panel__text--secondary'>{labels.accessPanel.sessionDidNothing}</p>}
|
|
51
|
-
</li>
|
|
52
|
-
);
|
|
53
|
-
})}
|
|
54
|
-
</ul>
|
|
55
|
-
</div>
|
|
56
|
-
);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
const asDate = (value: Date | string) => value instanceof Date ? value : new Date(value);
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
export * from './AccessPanel.js';
|
|
5
|
-
export * from './GrantAccessDialog.js';
|
|
6
|
-
export * from './IdentityPanel.js';
|
|
7
|
-
export * from './IssueActions.js';
|
|
8
|
-
export * from './IssueConversationPanel.js';
|
|
9
|
-
export * from './IssueHeader.js';
|
|
10
|
-
export * from './IssueView.js';
|
|
11
|
-
export * from './QuestionBanner.js';
|
|
12
|
-
export * from './ReopenIssueDialog.js';
|
|
13
|
-
export * from './ShareIdentityDialog.js';
|
|
14
|
-
export * from './StatusStrip.js';
|
|
15
|
-
export * from './SupportSessions.js';
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { Column, DataTableFilterMatchMode, DataTableForObservableQuery } from '@cratis/components/DataTables';
|
|
5
|
-
import { Tag } from '@cratis/components/Display';
|
|
6
|
-
import { IssueKind, MyIssues, ReportedIssue } from '@cratis/showrunner.usher';
|
|
7
|
-
import { format } from '../../Labels/index.js';
|
|
8
|
-
import { useUsherContext } from '../../Provider/UsherContext.js';
|
|
9
|
-
import { formatTime } from '../../Reporting/AccessChoice.js';
|
|
10
|
-
import { isClosed, stateBadgeFor, statusSteps } from '../issueStates.js';
|
|
11
|
-
import { isFixReleased } from '../MyIssuesList.js';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Props for {@link IssueList}.
|
|
15
|
-
*/
|
|
16
|
-
export interface IssueListProps {
|
|
17
|
-
/** Whether to list closed issues too. */
|
|
18
|
-
showClosed: boolean;
|
|
19
|
-
|
|
20
|
-
/** Opens an issue. */
|
|
21
|
-
onOpen: (issue: ReportedIssue) => void;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const openStates = statusSteps.filter(state => !isClosed(state));
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* The signed-in reporter's issues, most recent activity first, as they change.
|
|
28
|
-
*/
|
|
29
|
-
export const IssueList = ({ showClosed, onOpen }: IssueListProps) => {
|
|
30
|
-
const { labels, locale } = useUsherContext();
|
|
31
|
-
|
|
32
|
-
return (
|
|
33
|
-
<DataTableForObservableQuery<MyIssues, ReportedIssue, object>
|
|
34
|
-
key={showClosed ? 'all' : 'open'}
|
|
35
|
-
query={MyIssues}
|
|
36
|
-
dataKey='id'
|
|
37
|
-
emptyMessage={labels.myIssues.empty}
|
|
38
|
-
filteredEmptyMessage={labels.myIssues.noOpenIssues}
|
|
39
|
-
loadingMessage={labels.myIssues.loading}
|
|
40
|
-
failureMessage={labels.myIssues.failed}
|
|
41
|
-
unauthorizedMessage={labels.myIssues.unauthorized}
|
|
42
|
-
defaultFilters={showClosed ? {} : { state: { value: openStates, matchMode: DataTableFilterMatchMode.In } }}
|
|
43
|
-
selectionMode='single'
|
|
44
|
-
selection={null}
|
|
45
|
-
onSelectionChange={event => {
|
|
46
|
-
if (event.value) {
|
|
47
|
-
onOpen(event.value);
|
|
48
|
-
}
|
|
49
|
-
}}>
|
|
50
|
-
<Column<ReportedIssue>
|
|
51
|
-
field='title'
|
|
52
|
-
header={labels.myIssues.issueColumn}
|
|
53
|
-
body={issue => (
|
|
54
|
-
<span className='usher-issue-list__title'>
|
|
55
|
-
<span>{issue.title}</span>
|
|
56
|
-
<span className='usher-issue-list__kind'>{issue.kind === IssueKind.error ? labels.myIssues.errorKind : labels.myIssues.manualKind}</span>
|
|
57
|
-
</span>
|
|
58
|
-
)} />
|
|
59
|
-
<Column<ReportedIssue>
|
|
60
|
-
field='state'
|
|
61
|
-
header={labels.myIssues.stateColumn}
|
|
62
|
-
body={issue => {
|
|
63
|
-
const badge = stateBadgeFor(issue.state, labels);
|
|
64
|
-
return (
|
|
65
|
-
<span className='usher-issue-list__state'>
|
|
66
|
-
<Tag value={badge.label} severity={badge.severity} />
|
|
67
|
-
{issue.waitingOnReporter && <Tag value={labels.myIssues.waitingForYou} severity='warn' />}
|
|
68
|
-
{isFixReleased(issue) && <Tag value={format(labels.myIssues.fixedIn, { version: issue.fixedInVersion })} severity='success' />}
|
|
69
|
-
</span>
|
|
70
|
-
);
|
|
71
|
-
}} />
|
|
72
|
-
<Column<ReportedIssue>
|
|
73
|
-
field='lastActivityAt'
|
|
74
|
-
header={labels.myIssues.lastActivityColumn}
|
|
75
|
-
body={issue => formatTime(issue.lastActivityAt instanceof Date ? issue.lastActivityAt : new Date(issue.lastActivityAt), locale)} />
|
|
76
|
-
</DataTableForObservableQuery>
|
|
77
|
-
);
|
|
78
|
-
};
|