KURE Community Curation App Update - Delete Posts and Comments, Transfer Ownership of Communities, and Eye Candy on Post Actions

in #utopian-io2 years ago (edited)

More useful Steem functionality has been developed to give greater control over your content, as well as a critical KURE community feature to further empower community management.

You can now delete posts and comments on Steem. Making mistakes happens. When it comes to posting content, we can edit the content. But what if we prefer to simply remove our content, rather than leave it up or edit it out? Being able to delete content can be highly useful. This is a very valuable feature to have, as @valued-customer commented to me:

Being able to delete comments and posts is pretty important to me, as I sometimes make a post or comment having missed some important fact that invalidates the entire premise of the content. At that point, editing makes no sense, and deletion is the only responsible action available.

On Steem, if your post or content doesn't have any comment reply on it, nor any upvotes, you can delete it from the active content on the blockchain. You can't delete it from the history of blocks in the past, but you can get rid of it for the future active content on your blog or on a post.

Enabling this feature is an important utility to have. We might not use it often, but it can be handy and save us from ourselves in making poor decisions in posting something we regret. Rather than edit a post and have a blank post or some message about a deleted post, you can delete it, if you realize your mistake before any votes or comments are made. How many times have we deleted comments or posts on other platforms online? Having that available on KURE for Steem is highly valuable as well.

On the KURE side, a very significant feature has been added: transferring ownership of a community you own. For whatever reason, you can hand over your community to someone else for them to be the owner. Some people have created communities to reserve the name for others if they want them, such as with @truthforce who created Deep Dives to hold for @v4vapid. Now, @truthforce can give away the community to @v4vapid. This is a highly valuable feature that will further empower users and communities, freeing up more possibilities between members and management of communities.

Any feedback or criticism is welcome and appreciated. I am looking to improve the app and your experience using it.

What do you want to see next?






  1. What is KURE?
  2. What's new?
    2.1 Added deleting of posts
    2.2 Added deleting of comments
    2.3 Added Transfer Ownership option to owned community groups
    2.4 Eye Candy on Post Actions
  3. Bugs, Tweaks and Other Fixes
    3.1 Fixed bug of spinner stuck on community page with no posts
    3.2 Fixed loading spinner staying on blog page with no posts
    3.3 Fixed comment form disabled by default
    3.4 Fixed spinner not showing when sending comment
    3.5 Fixed editing posts not updating changes in view
    3.6 Fixed join request not working since move to redux
    3.7 Fixed permissions not updated in view after ownership transfer
    3.8 Fixed the view not moving transfered community to joined section
  4. Roadmap
  5. Contact

1. What is KURE?

Kindred United to Reward Everyone.

A Community Platform and Curation Network Remedy for Steem

Do you want to find content that other people really value, based on topics that interest you? How?

Upvotes don't do it, because so many upvotes come from autovoting, autobots, or curation trails. You don't know if a vote for content is done by a real person, or some automation. The content isn't being evaluated when it's automated.

Plus, you can upvote so many things, which can be unrelated.

Imagine a curation network where people are interacting through community groups to share and value content, and you can really see what they value globally through various communities that people organize and collaborate together to build.

KURE provides a network hub for people to create their own community groups for evaluating content to curate. It will also develop into communities to create posts within.

Create your own communities and have others join to contribute. Make up your own criteria. Manage who can add curation links to your community group. Anyone else can follow your community and engage.

My goal is to make content easier for everyone to find by all of us sharing the content we like trough communities. Others can find communities they are interested in and see what is being curated within that community to also support it with upvotes, resteems and comments.

Maybe you want to share what you value, and get others to see it or support it, but don't want to resteem it, or want more people to see it. On KURE, the community you create and those who are involved in it will popularize content you value and allow others to see it. Another way of thinking about it, is it's kind of like having a custom community feed, based on a community that engages in creating it, rather than just one person.

KURE empowers the Steem community to coordinate their curation efforts through building community networks of their own.

2. What's new

Video Demonstration

Deleting Posts and Comments, and Some Eye Candy for Steem Actions

Transfer Ownership of Communities

2.1 Added deleting of posts

To delete a post, open the post in question, and if it's possible, you will see an X icon button at the bottom right of content of the post.

If you hover over the icon, it will say 'Del' and turn red. It will also display a title of "Delete post".

When you click the button, a confirmation popup appears to make sure you really want to delete the post.

After confirming, the post will get dimmed and a loading spinner will appear while the post deletion is being processed into the Steem blockchain.

Afterwards, you will be redirected to your main "blog" page and will see the post is gone.

The post deleting was much more simple than the comment deletion.

In order to see the delete option, a check is made for the active votes and the comment count. If there are none of both, then the delete option is possible. The author and permlink are sent in the onClick for the button.

In the Redux action creator, the author and permlink are used to delete the post. Once completed, the user is redirected to their own blog page to see the post gone.

2.2 Added deleting of comments

To delete a comment, view the comment in question on the post, and if it's possible, you will see a 'Delete' link at the bottom of the comment.

When you click the 'Delete' link, a confirmation popup appears to make sure you really want to delete the post.

After confirming, wait about 3 seconds and the comment will disappear.

Getting the comment deleted starts off in the same way as the post, but gets more complex to remove it from the view in the app without a page refresh or refetching all the comments again. Refetching the comment data would have been quicker, and maybe it's less resource demanding as well.

The author and permlink are sent to the Redux action creator to delete.

As you can see, there is more code here. First, the comment is deleted from Steem. Then, if successful, if the comment is new and was just added and wasn't part of the original page load, a quick check is made in the commentPayload object and the comment is filtered out.

If the comment isn't there, then a look is made in the comments that were part of the page loading to look into the nested comment and recursively delete them.

This brings us to the recursive function, where all the replies are dug into to try to find the comment we want to delete. If found, it's filtered out.

2.3 Added Transfer Ownership option to owned community groups

In the Manage page for managing community groups, you can transfer ownership of a group you own. Click on the Edit icon.

When the Managing section opens up, there is the new section called Transfer Ownership. Type in the name of a user. They must already be in the community in order to receive ownership. If they aren't add them first, then click on Transfer.

After the transfer is done, you will see the group change location, from Communities You Own to Communities You Joined. Now you are no longer the owner, but are still a member of the group.

2.4 Eye Candy on Post Actions

There has been some eye candy animated effect added for the post actions, which include deleting a post.

Edit a post will show an edit icon, and hovering over it will animate the Edit text.

Delete a post will show an X icon, and hovering over it will animate the Del text.

Adding a post to a community will show a + icon, and hovering over it will animate the Add text.

3. Bug Fixes

3.1 Fixed bug of spinner stuck on community page with no posts

A bug was introduced with some previous code changes, where the community page with no current posts was not showing the basic layout of no posts, members, and the name of the group. I was checking for posts in order to display, which was a blunder, since sometimes there are no posts.

Grabbing the kposts.length when there were no posts made the loading spinner stay forever.

Correcting that to instead look for the group's display name meant that the group data would show up even if there were no posts, which is what is required.

3.2 Fixed loading spinner staying on blog page with no posts

When a Steem blog page was loaded, but there were no posts, the loading spinner was also staying stuck. When I merged pages I added several fetches at first, but they became useless and I refined the code.

I had a fetch for the scroll which was no longer being used, but checked and would not show the No Posts message as a result.

Removing the useless fetch corrected the issue and now blog pages with no posts will show a simple No Posts message.

3.3 Fixed comment form disabled by default

When I merged the ReplyForm with the EditForm, I also merged the disabled flag, but erroneously used it to disable the text area itself.

By not using the merged disabled flag, and instead using the isCommenting flag alone, the text area was active and working again.

3.4 Fixed spinner not showing when sending comment

Another loading spinner bug, but this time for it not showing. When I created the send comment Redux actions, I forgot to pass in the parent ID which was used in my app to determine if a comment was being commented on.

After adding the parentId field to the reducer, the comment being sent had the loading action present.

3.5 Fixed editing posts not updating changes in view

When I made the editing posts functionality, it worked, but the changes to anything other than the body were not visibly seen afterwards. This means when changing the title or tags, they weren't seen afterwards.

To resolve that, I went and grabbed the content of the post when an update was made to the Post component, but only when there was a draft, and when the new draft object wasn't the same as the one before.

3.6 Fixed join request not working since move to redux

After moving Join Requests to Redux, you could see Join, but when trying to join, nothing happened. This is now working again after I fixed the way data is obtained using the Redux state.

I didn't account for the reducer when I was trying to get the data. As a result, I was getting undefined data, instead of the actual data.

After specifying the communities reducer, the data was present and everything was working again as it did prior to moving to Redux.

3.7 Fixed permissions not updated in view after ownership transfer

When transferring a community's ownership to some one else, the membership view was not updated to reflect these changes. I fixed it by updating the users state object to change the membership for the logged in user, setting them as a Member instead of an Owner, and set the newOwner as Owner.

3.8 Fixed the view not moving transfered community to joined section

The view for the Own and Join communities views was not updated when transferring a community to another owner. So after a transfer, the community still showed in the Own area, rather than Joined.

Instead of manipulating the data across various level of the component hierarchy, I opted to simply go fetch the data again which would be less complicated and less resource demanding. Now when ownership is transfered, a call is made to the top level parent to simply call the data again and propagate it through props to the child components.

4. Pull Request / Latest Commits

PR 17

5. Roadmap

Up next I plan to tackle the Resteem and Flag functions. That will make the basic Steem front-end functionality complete, pretty much.

Working on:

  • Improved UI/UX, landing page, code splitting, PRPL
  • Liking Kurated post submissions in communities
  • Rating Kurated post submissions in communities
  • Tweak comments (limit to 20, show more option, max nested depth)
  • Implement PRPL Pattern for better performance
  • Viewing comments in their own page view
  • Adding infinite scroll to the Communities page
  • Adding sort functions to the Home, Communities and Kurated pages
  • About page
  • Dark skin for the site
  • Selecting posts to vote at a later time
  • Grid and List layout for Steem, Blog, and Feed pages
  • Improve Blog page, with rep, description and location
  • Add a settings page
  • Add nsfw filtering
  • Add progressive image loading
  • Payouts shown in different ways
  • Unvote a post
  • Show upvote percentage on upvotes made
  • Flag a post

6. Contact

If you want to contact me, you can reach me on Discord at https://discord.gg/ApUp4jJ, or email at [email protected]. I'm not really on steem.chat, but I think I get emails if you send me a message.

Contributions can be submitted as pull requests to https://github.com/KrNel/kure

Thank you for your time, attention and support. I appreciate it.


Posted from KURE

  • Awesome post with a clear statement for it's importance.
  • Multiple videos, images, code samples and explanations, a clear example for others for Utopian development articles.
  • The commit comments are the most comprehensive I've seen yet. Clearly a lot of effort has been put to explain every change. A big plus for anyone wanting to contribute to this repository.
  • Keep up the great work!

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.

Need help? Chat with us on Discord.


Thanks for the great review. I will keep it up indeed :)

Thank you for your review, @helo! Keep up the good work!

Rather than edit a post and have a blank post or some message about a deleted post, you can delete it,

Personally, in these cases, I have preferred in these cases to edit the post as follows

Body of comment

[Edit]: I derped on this information, here is the correct data, here is why I thought what I thought when I first thought it

But then again I can be an over wordy basterd

"But then again I can be an over wordy basterd"

Can confirm.

"Personally, in these cases, I have preferred in these cases..."

Case in point. XD


[edit]: errrrr, I meant to do that to emphasize my point. yea, that's the story!

Hehe, ah well, not delete then, and edit to your hearts content ;)

wow awoesome amazing platfoorm i really enjoyed this article an learn much more from it
one thing ireally amazed me that is the deleting post comment from past posting

Hi @krnel!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Hey, @krnel!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

This post has been included in the latest edition of The Steem News in 10 posts - a compilation of the key news stories on the Steem blockchain.