createDocument property

MutationSignal<DeskDocument?, ({Map<String, dynamic> data, bool isDefault, bool publish, String? slug, String title})> createDocument
latefinal

Implementation

late final createDocument =
    mutationSignal<
      DeskDocument?,
      ({
        String title,
        Map<String, dynamic> data,
        String? slug,
        bool isDefault,
        bool publish,
      })
    >((args) async {
      final docType = currentDocumentType.value;
      if (docType == null) return null;

      final document = await dataSource.createDocument(
        docType.name,
        args.title,
        args.data,
        slug: args.slug,
        isDefault: args.isDefault,
      );

      selectedDocumentId.value = document.id;

      if (args.publish) {
        await dataSource.publishCurrentVersion(document.id!);
      }

      final versions = await dataSource.getDocumentVersions(document.id!);
      if (versions.versions.isNotEmpty) {
        selectedVersionId.value = versions.versions.first.id!;
      }

      documentsContainer(
        currentDocumentType.value?.name ?? '',
      ).awaitableReload();

      return document;
    }, debugLabel: 'createDocument');