optionMenu method

dynamic optionMenu(
  1. dynamic ref,
  2. dynamic pin,
  3. String link
)

Implementation

Widget? optionMenu(WidgetRef ref, ActerPin pin, String link) {
  //Get my membership details
  final membership =
      ref.read(roomMembershipProvider(pin.roomIdStr())).valueOrNull;
  if (membership?.canString('CanPostPin') != true) return null;

  return PopupMenuButton<String>(
    key: const Key('fake-pink-link-menu-options'),
    icon: const Icon(Icons.more_vert),
    itemBuilder: (context) => [
      //Check for can post pin permission
      PopupMenuItem<String>(
        key: const Key('fake-pink-link-edit'),
        onTap: () {
          showAddEditLinkBottomSheet(
            context: context,
            pinLink: link,
            onSave: (title, newLink) async {
              if (link == newLink) Navigator.pop(context);
              await handleLinkBackwardSupportOnEdit(
                context,
                ref,
                pin,
                title,
                newLink,
              );
            },
          );
        },
        child: Text(L10n.of(context).edit),
      ),
      PopupMenuItem<String>(
        key: const Key('fake-pink-link-delete'),
        onTap: () => updatePinLink(context, pin, ''),
        child: Text(
          L10n.of(context).delete,
          style: TextStyle(
            color: Theme.of(context).colorScheme.error,
          ),
        ),
      ),
    ],
  );
}