Files
discord-decomp/modules/activities/native/ActivityFeedbackActionSheet.tsx
T
2026-11-01 12:12:55 +02:00

59 lines
2.5 KiB
TypeScript

// Metro module 16175 (f16176).
import { ActivityFeedbackReasons } from "../Constants";
import { AnalyticEvents } from "../../../Constants";
import { FeedbackType } from "../../feedback/Constants";
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
import getActivityReportOptions from "../getActivityReportOptions";
import FeedbackActionSheet from "../../feedback/native/FeedbackActionSheet";
import { intl, t } from "../../../intl/index.native";
import { processOptOut } from "../../feedback/FeedbackUtils";
import { presentFeedbackSent } from "../../toast/native/ToastUtils";
import trackActivityProblem from "../trackActivityProblem";
const feedbackReasons = [ActivityFeedbackReasons.OTHER, ActivityFeedbackReasons.ADS, ActivityFeedbackReasons.NOT_FUN];
export default function ActivityFeedbackActionSheet(props) {
const { activityApplication, channel, embeddedActivityLocation, analyticsData } = props;
const activityReportOptions = getActivityReportOptions(true, activityApplication.embeddedActivityConfig?.displays_advertisements === true);
return <FeedbackActionSheet headerLabel={intl.formatToPlainString(t.QXYwoD, {
applicationName: activityApplication.name
})} showHeaderCloseButton ratingsBodyLabel={intl.string(t["9hk2KF"])} reasonsHeaderLabel={intl.string(t.g1q5fr)} reasons={activityReportOptions} feedbackReasons={feedbackReasons} otherKey={ActivityFeedbackReasons.OTHER} trackOpen={() => {
AnalyticsUtils.track(AnalyticEvents.OPEN_POPOUT, {
type: "Activity Feedback Sheet",
application_id: activityApplication.id,
application_name: activityApplication.name,
game_id: activityApplication.id,
source: "Activity End"
});
}} trackReport={function trackReport(a0) {
const { rating, reason } = a0;
let feedback = a0.feedback;
const dontShowAgain = a0.dontShowAgain;
const problem = reason != null ? reason.value : null;
if (dontShowAgain) {
AnalyticsUtils.track(AnalyticEvents.ACTIVITY_REPORT_DONT_SHOW, {
application_id: activityApplication.id,
rating
});
processOptOut({
feedbackType: FeedbackType.ACTIVITY,
location: "ActivityFeedbackActionSheet"
});
}
if (rating != null) {
presentFeedbackSent();
if (feedback == null) {
feedback = "";
}
trackActivityProblem({
problem,
channel,
embeddedActivityLocation,
feedback,
activityApplication,
analyticsData,
location: "Activity End",
rating
});
}
}} />;
};