KURE Community Curation App Update - Delete Posts and Comments, Transfer Ownership of Communities, and Eye Candy on Post Actions
utopian-io·@krnel·
0.000 HBDKURE Community Curation App Update - Delete Posts and Comments, Transfer Ownership of Communities, and Eye Candy on Post Actions
[//]: # (https://github.com/KrNel/kure) 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?* <center><a href="https://thekure.net/"><img src="https://i.imgur.com/ltGSQBe.png" /></a></center> --- # Repository https://github.com/KrNel/kure # Site https://thekure.net/ --- # Index 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 5. Roadmap 6. Contact --- # 1. What is [KURE](https://thekure.net/)? ### 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 https://vimeo.com/332752885 ## Transfer Ownership of Communities https://vimeo.com/332467320 --- ## 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. <center><img src="https://i.imgur.com/dvErskV.png" /></center> If you hover over the icon, it will say 'Del' and turn red. It will also display a title of "Delete post". <center><img src="https://i.imgur.com/FoIrkuo.png" /></center> When you click the button, a confirmation popup appears to make sure you really want to delete the post. <center><img src="https://i.imgur.com/1tJ81gO.png" /></center> After confirming, the post will get dimmed and a loading spinner will appear while the post deletion is being processed into the Steem blockchain. <center><img src="https://i.imgur.com/JArQjTJ.png" /></center> 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. <center><img src="https://i.imgur.com/Db9EGKJ.png" /></center> 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. <center><img src="https://i.imgur.com/CXGz6Sx.png" /></center> --- ## 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. <center><img src="https://i.imgur.com/4KkiPp3.png" /></center> When you click the 'Delete' link, a confirmation popup appears to make sure you really want to delete the post. <center><img src="https://i.imgur.com/KwuUaGh.png" /></center> 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. <center><img src="https://i.imgur.com/9SRZdR7.png" /></center> 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. <center><img src="https://i.imgur.com/JqovUoN.png" /></center> 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. <center><img src="https://i.imgur.com/t07aACn.png" /></center> --- ## 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. <center><img src="https://i.imgur.com/yxh80I0.png" /></center> 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`. <center><img src="https://i.imgur.com/a9Y4bJa.png" /></center> 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. <center><img src="https://i.imgur.com/5KM9f65.png" /></center> --- ## 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. <center><img src="https://i.imgur.com/dvErskV.png" /></center> <center><img src="https://i.imgur.com/wBDloqG.png" /></center> <center><img src="https://i.imgur.com/FoIrkuo.png" /></center> <center><img src="https://i.imgur.com/66ZqtYr.png" /></center> --- # 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. <center><img src="https://i.imgur.com/jkaXmxu.png" /></center> 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. <center><img src="https://i.imgur.com/9zirnad.png" /></center> --- ## 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. <center><img src="https://i.imgur.com/pL9IXB2.png" /></center> Removing the useless fetch corrected the issue and now blog pages with no posts will show a simple `No Posts` message. <center><img src="https://i.imgur.com/S5jvHpQ.png" /></center> --- ## 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. <center><img src="https://i.imgur.com/VqXti8p.png" /></center> By not using the merged disabled flag, and instead using the isCommenting flag alone, the text area was active and working again. <center><img src="https://i.imgur.com/5AyA5Le.png" /></center> --- ## 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. <center><img src="https://i.imgur.com/uEsqMHs.png" /></center> After adding the `parentId` field to the reducer, the comment being sent had the loading action present. <center><img src="https://i.imgur.com/ummDJtY.png" /></center> --- ## 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. <center><img src="https://i.imgur.com/0mJcsgI.png" /></center> --- ## 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. <center><img src="https://i.imgur.com/rVqJBQA.png" /></center> After specifying the `communities` reducer, the data was present and everything was working again as it did prior to moving to Redux. <center><img src="https://i.imgur.com/2Rrck5f.png" /></center> --- ## 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. <center><img src="https://i.imgur.com/uKsQZFX.png" /></center> --- ## 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. <center><img src="https://i.imgur.com/dUcsfsV.png" /></center> --- # 4. Pull Request / Latest Commits # [PR 17](https://github.com/KrNel/kure/pull/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 `krnel@protonmail.com`. I'm not really on steem.chat, but I think I get emails if you send me a message. - [Discord](https://discord.gg/ApUp4jJ) - Email: `krnel@protonmail.com` - Site: [thekure.net](https://thekure.net/) Contributions can be submitted as pull requests to https://github.com/KrNel/kure --- Thank you for your time, attention and support. I appreciate it. Peace. --- ***Posted from [KURE](https://thekure.net)***
👍 cryptouno, hdu, imisstheoldkanye, informatio, ezravandi, jadabug, zero-profit, steembot-general, steembot-colonel, rafelchato, steembot-soldier, almiller, bukiland, votes4minnows, leir, beetlevc, rhampagoe, elviento, makis84, astusi, ucett, uckeatred, porsomi, dionge, conable, sourra, eproomsa, upayi, ariste, eroro3, ungand, oxante, yoowasees, xumsofe, ostatori, tutordu, yamsin, zugs, minminlou, nadit, edito, ikelyo, nisitof, anowedo, kiss.kiss, ederonde, ritimim, oksaelfuc, ofeasa, endeseror, usedont, souridri, okertus, mightypanda, lionsuit, primeradue, amosbastian, tobias-g, jaff8, rufans, helo, fego, bestofph, buckydurddle, jinger, ulockblock, kendallron, mirkosche, espoem, codingdefined, ascorphat, mops2e, yaanivapeji, holger80, freshfund, stevescoins, sciencevienna, bookkeeping, warfeed, jasonbu, krnel, ripperone, alexis555, delegate4upvotes, sam99, m41277de, deconstruction, mcfarhat, dgiors, tomblackstone, theycallmedan, trenz, werewennad, team-leibniz, fiona777, thelindvall, carrinm, aparanoide, jonnyrevolution, eagleye, bledarus, nspart, sebastianjago, imerick, djdean, tiowaldecir, gmedley, mauricemikkers, mytechcrunch, sc-steemit, commonlaw, craigahamilton, aksinya, ameliawheat, ebryans, lonilush, kyusho, johnvibes, ericarthurblair, teamsteem, caros, indayclara, allyouneedtoknow, builderofcastles, wakeupnd, warofcraft, practicalthought, loshcat, greenorange, soyrosa, jjay, ryuna.siege, steemprotect, utopian.trail, suesa, techslut, minersean, erikaflynn, jakipatryk, che-shyr, didic, abh12345, elear, mcyusuf, aussieninja, stem-espanol, daan, tykee, silviu93, dakeshi, vishalsingh4997, zoneboy, sargoon, darewealth, dongentle2, jubreal, rollthedice, netizens, bflanagin, jk6276, dssdsds, jayplayco, ravensavage, mrsbozz, jk6276.mons, jaxson2011, ajayyy, rewarding, vanarchist, lorenzor, tsoldovieri, iamphysical, felixrodriguez, azulear, carloserp-2000, ivymalifred, yrmaleza, miguelangel2801, emiliomoron, tomastonyperez, elvigia, luiscd8a, elpdl, josedelacruz, joseangelvs, viannis, erickyoussif, yusvelasquez, ubaldonet, mary11, lupafilotaxia, fran.frey, alfonzoasdrubal, giulyfarci52, wilmer14molina, ydavgonzalez, andrick, mirzantorres, jrevilla, alaiza, lapp, steemtpistia, crassipes, agrovision, psicoluigi, zyx066, harry-heightz, eliaschess333, alexs1320, cpufronz, scienceangel, yu-stem, amestyj, cyprianj, geadriana, alex-hm, carlos84, ennyta, gaming.yer, steem-familia, evangelista.yova, jenniferjulieth, ajfernandez, endopediatria, ingmarvin, alix96, elimao, anaestrada12, yorgermadison, alexjunior, asmeira, douglimarbalzan, antunez25, haf67, chavas, eglinson, uzcateguiazambra, garrillo, pfernandezpetit, mgarrillogonzale, rubenp, jeferc, hirally, emynb, eugenialobo, ballesteroj, jcmontilva, rodriguezr, marbely20, moyam, emilycg, darys, sibaja, balcej, lmanjarres, anaka, benhurg, judisa, juddarivv, mariamo, kimmorales, loraine25, steem-ua, newsrx, qurator, treaphort, yadamaniart, onethousandwords, soloinfinity, itsben, fibrefox, occpresents, qberryfarms, alexanderrigov, jlsplatts, yusifm, turkolog, gribouille, magatha, bengeudens, heavensweapon, shookriya, mariajruizb, mandalaflower, blewitt, luckyspark, steem.moon, dunnomix, dikkie, steem.gulraiz, leivafoundation, mjroja, perspectoid, fural, pinklady63, splatz, trevado, norepinephrine, goldenturtle, lifekeys, lil-splatts, sivehead, kuku-splatts, homefree, splatz-1, splatz-2, splatz-3, skycae, camillius, magdechef, inpursuit, pursuant, dizzyjay, wisewoof, devondrjackson, kaczynski, theleapingkoala, bitcoincoimbra, bitcoinportugal, coquiunlimited, jayna, bcfriday, jazzyjeff, bluedragon1974, dbread, weirdheadaches, theouterlight, jamiz, malay11, cooknbake, marcoriccardi, verhp11, utopian-io, tombstone, jga, dicetime, blockurator, nolasco, puggle, prudent-rod1, aejackson, nwjordan, sojol527, alvinvoo, anarchojeweler, mimi87, mollythegreat, yefersonxr0, valued-customer, the-alien, deepdives, v4vapid, pennsif, arcange, raphaelle, nourtawfiq, boukdir, fluidfennec, bitcoinparadise, cryptophunk, fruitarianism, diabonua, howiemac, themightysquid, tigerrkg, banvie, himshweta, angelinafx, hamsa.quality, seablue, erica005, j3dy, hitmeasap, paradigmprospect, curatorhulk, mitrado, freevoluntarist, fun2learn, nailyourhome, delegate4upvot, osnely, wildmanhowling, the-naked-geek, flyinghigher, catherinebleish, esecholo, charlie777pt, resteemer, diggndeeper.com, neoconqueso, mashiliyanage, homestead-guru, republicrose, fabrik, rtytf, anttn, freebornsociety, swedishdragon, jacobts, deadcountry, tribevibes, alchemage, mckeever, trucklife-family, riverflows, truthabides, tribe1up, metametheus, kennyskitchen, elamental, hopehuggs, vincentnijman, minismallholding, felander, yogacoach, photolander, mountainjewel, realtreebivvy, gentmartin, ladysalsa, bobaphet, metama, tribetopten, canna-curate, naturalmedicine, inspirationfeed, owasco, bewithbreath, steelborne, misslasvegas, krishool, swisswitness, farmsnotpharms, vids2changdawrld, sagescrub, geliquasjourney, be-empowered, foodforestbot, phusionphil, mango-juice, coffeebuds, oh-high-mark, elderson, jackdub, bengiles, guysofcannabis, hotsauceislethal, akdx, fixedbydoc, lopzdaniel, truthbot, tribesteemup, juansgalt, bryanj4, sterlinluxan, burntmd, emancipatedhuman, dannyshine, tftproject, adamkokesh, maloneyj55, antimedia, solarsupermama, earthmother, lishu, adisrivastav, moxieme, hempress, dannyquest, eugenekul, steemsmarter, richardcrill, freebornangel, mwolfe13, yuslindwi, whatamidoing, activate.alpha, tfame3865, libertyepodcast, firststeps, davinsh, nataboo, steemer-x, thecolaguy, annemariemay, rainbowrachel, smarmy, vividessor, numberjocky, phillyc, open3ye, barleycorn, startreat, thoughts-in-time, wwf, burrels, rawutah, bala41288, celestialcow, haileyscomet, daniscib, edgecanopy, c0ff33a, vegansofsteemit, plantstoplanks, nmcdougal94, enchantedspirit, eaglespirit, evernoticethat, sapphic, walkerland, yestermorrow, abrockman, enjoycompany, iansart, belleamie, nomad-magus, churdtzu, eftnow, tibra, indahigh, thomaskatan, vegan.niinja, ashe-oro, kieranpearson, sovereignalien, sima369, krisstofer, brightstar, heart-to-heart, vegan4theanimals, monetapes, taskmaster4450, mannacurrency, colinhoward, canadianrenegade, tonysayers33, inspirewithwords, franciferrer, evecab, cahlen,