mirror of
https://github.com/bitwarden/browser
synced 2026-03-01 02:51:24 +00:00
70 lines
2.2 KiB
TypeScript
70 lines
2.2 KiB
TypeScript
// FIXME: Update this file to be type safe and remove this and next line
|
|
// @ts-strict-ignore
|
|
import { Component, Input } from "@angular/core";
|
|
import { FormBuilder } from "@angular/forms";
|
|
|
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
|
import { SendAccessView } from "@bitwarden/common/tools/send/models/view/send-access.view";
|
|
import { IconModule, ToastService } from "@bitwarden/components";
|
|
|
|
import { SharedModule } from "../../../shared";
|
|
|
|
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
|
|
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
|
|
@Component({
|
|
selector: "app-send-access-text",
|
|
templateUrl: "send-access-text.component.html",
|
|
imports: [SharedModule, IconModule],
|
|
})
|
|
export class SendAccessTextComponent {
|
|
private _send: SendAccessView = null;
|
|
protected showText = false;
|
|
|
|
protected formGroup = this.formBuilder.group({
|
|
sendText: [""],
|
|
});
|
|
|
|
constructor(
|
|
private i18nService: I18nService,
|
|
private platformUtilsService: PlatformUtilsService,
|
|
private formBuilder: FormBuilder,
|
|
private toastService: ToastService,
|
|
) {}
|
|
|
|
get send(): SendAccessView {
|
|
return this._send;
|
|
}
|
|
|
|
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
|
|
// eslint-disable-next-line @angular-eslint/prefer-signals
|
|
@Input() set send(value: SendAccessView) {
|
|
this._send = value;
|
|
this.showText = this.send.text != null ? !this.send.text.hidden : true;
|
|
|
|
if (this.send == null || this.send.text == null) {
|
|
return;
|
|
}
|
|
|
|
this.formGroup.controls.sendText.patchValue(
|
|
this.showText ? this.send.text.text : this.send.text.maskedText,
|
|
);
|
|
}
|
|
|
|
protected copyText() {
|
|
this.platformUtilsService.copyToClipboard(this.send.text.text);
|
|
this.toastService.showToast({
|
|
variant: "success",
|
|
title: null,
|
|
message: this.i18nService.t("valueCopied", this.i18nService.t("sendTypeText")),
|
|
});
|
|
}
|
|
|
|
protected toggleText() {
|
|
this.showText = !this.showText;
|
|
this.formGroup.controls.sendText.patchValue(
|
|
this.showText ? this.send.text.text : this.send.text.maskedText,
|
|
);
|
|
}
|
|
}
|