Git Product home page Git Product logo

frontend's Introduction

DeSo Logo

About DeSo

DeSo is a blockchain built from the ground up to support a fully-featured social network. Its architecture is similar to Bitcoin, only it supports complex social network data like profiles, posts, follows, creator coin transactions, and more.

Read about the vision

About This Repo

Documentation for this repo lives on docs.deso.org. Specifically, the following docs should give you everything you need to get started:

Node / NPM versions

This frontend works best with Node v14.15.5 and Npm v7. If you can't use these versions, then try npm install --force.

Start Coding

The quickest way to contribute changes to the DeSo Frontend is the following these steps:

  1. Open frontend repo in Gitpod

Open in Gitpod

You can use any repo / branch URL and just prepend https://gitpod.io/# to it.

  1. If needed, login to your github account

  2. Set the correct lastLocalNodeV2 to "https://api.tijn.club" in your browser Local Storage for the gitpod preview URL

  3. Create a new branch to start working

To commit / submit a pull request from gitpod, you will need to give gitpod additional permissions to your github account: public_repo, read:org, read:user, repo, user:email, workflow which you can do on the GitPod Integrations page.

frontend's People

Contributors

aeonsw4n avatar akutch avatar bluepartyhat avatar brootle avatar caticodev avatar chafreaky avatar connerdouglass avatar daniel-keyes avatar desodog avatar diamondhands0 avatar farsadf avatar ipaulpro avatar itsaditya-xyz avatar jackson-dean avatar jagathks avatar jsonpreet avatar justifydwarrior avatar lazynina avatar maebeam avatar mattfoley8 avatar metaspartan avatar mubashariqbal avatar mvanhalen avatar omicreativedev avatar redpartyhat avatar shhubhama avatar stas-kh avatar superzordon avatar tijno avatar triplegreenshell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

frontend's Issues

Page not found in README

Hi, I made a comment about this on BitClout already, but in the README it has a link to: https://github.com/bitclout/core which isn't live yet.

It says, "Please refer to the README for the core repo for more info."

Which is a bit confusing given that the core seems to be a private repo. I just wanted to point this issue out encase you haven't noticed.

Regression Bug: What happened to the UsersWhoHODLYou array?

Hi,

The latest commit #132 seems to have broken the GetStatelessUser response. It no longer contains the UsersWhoHODLYou array, only the count.

I tried explicitly adding SkipForLeaderboard: false but that did not work.

This broke a feature in my app. Can we get this back, please?

Bookmark and Share Posts

Implementing the 'Bookmark Post' and 'Share Post' functionality by having a 'Dropdown List' in place of the current 'Copy Link' Button.

This has numerous benefits, some of them are mentioned👇🏻

  1. Saves time as finding posts is a hassle for the average user. (Bookmarks)
  2. Easy cross-platform sharing is free marketing and enhances user experience. (Share Post)
  3. It'll be fun to peek into Balaji's Bookmarks :P (Project Idea?)

image

Can't transfer $CLOUT to anonymous wallets/Exchange

Seems like after introduction of the feature of "showing who are we sending Clouts too " We are not able to send the Clout to Anonymous/Exchange wallets and the error which is popping is :

"Error loading profiles: GetSingleProfile: could not find profile for username or public key: "

Post reply "embed" option display issue & request - Bug/Feature request

Hi,

Seems to be a display issue with the "embed" option...
embedissue

  • I'm wondering what the rest of the text says "Embed YouTube, Vimeo, TikTok, Giphy, Spotify or"... OR what?

Also could we can we get reply with image added (as easy as when posting a NEW post) - presumably its just a case of including the image button on the reply & saving that off to the image store, then including the url as an embed?

Cheers guys :)

Many Signup Issues Recently

@maebeam @lazynina

As seen in the pulse discord newbie and discussion channels...

There seem to be a lot of issues with front end not moving forward with the verify phone number process.

Related? Somehow accounts are being created with a 0.0000000 balance even with submission of BTC. As a result, no transactions are allowed. The public key is valid as we are able to send Bitclout, but only after .21 CLOUT was sent was one user able to update profile. Sending .01 got them further but wasn't enough... and I'm running out of charity clout :D

Is there any chance these issues are due to the current Bitclout price?

Proposed setup for proper title/meta and embed tags

I have implemented post and user embed functionality on tijn.club- which i think you saw and liked @lazynina

20210617-8b3gokTg

20210617-vEmH26PX

The setup is as followed:

  1. cloudflare worker for /u/ and /posts/ urls
  2. worker checks cache for user profile / post data, if not in cache will request from api
  3. worker rewrites opengraph, twitter card meta & title tags in index.html
  4. outputs response to requester

This enables following benefits:

  • Hugely improved SEO for posts & user profiles as key details are in the title now.
  • Better embedding of posts on social media and discord, driving more new users to bitclout

As bitclout is for now the primary site people use, it would be great to move this functionality to bitclout.com

The worker script is super simple, and as you already use cloutflare it is a relatively easy step to implement i think.

Let me know if you are interested.

Query the back-end to validate a public key

Hi,

I was wondering if there is an endpoint on bitclout's back-end that would tell if any given public key is valid.

I have been looking at the code for the front-end and I found some endpoints but I haven't figured out how to use them.

Like this one for instance: https://bitclout.com/api/v0/get-single-profile

What I would like to do is pass on to some endpoint a bitclout user's public key and see if it is valid.

Could someone please help me figure this out?

Add license

Assuming it is MIT but best to add the license for full clarity.

Easy "lists" feature for Bitclout

Let me know if your interested in this feature and ill submit as a PR @maebeam @lazynina

  • New "Watching" feed tab
  • Select box listing the "secondary" accounts, eg not the one you are logged in as right now
  • Use it to view feeds from the other account, but reply, like, diamond with your main account
  • This allows you to create simple twitter like Lists
  • Selection is persisted through local storage

Its live on tijn.club but needs to tidying & commenting.

20210612-mw42XPsF

Let me know

Accessibility Request: Alt text feature for BitClout

@bluepartyhat @lazynina

This is a request for an alt text feature for photos.

Right now photos are completely inaccessible to blind/low vision demographics who use screenreaders. Following other social media examples for alt text, it can be an optional feature like a text box where a creator can input their own alt text/labels for the photo they are posting.

Like this:

image

Getting Incorrect Value for nanosToUSD and nanosToUSDNumber

I'm running some tests using a couple of the conversion methods from the globalvars service in the app. Specifically:

` nanosToUSDNumber(nanos: number): number {
const result = nanos / this.nanosPerUSDExchangeRate;
console.log('[RESULT] :: ', result);
return result;
}

nanosToUSD(nanos: number, decimal?: number): string {
    if (decimal == null) {
        decimal = 4;
    }

    const result: string = this.formatUSD(this.nanosToUSDNumber(nanos), decimal);
    console.log('[RESULT] :: ', result);
    return result;
}`

I did a real-time pull of the required nanos value from the get-single-profile API call. I even verified the BitClout frontend at bitclout.com is fetching the same values.

When using the following value and running it through the function, its completely off.

Test Value: 1090670098 (Profile.CoinPriceBitCloutNanos) should represent a coin price of ~$190 (according to the BitClout frontend).

I have passed the test value to both methods above, exactly as shown in the frontend code here:

~{{ globalVars.nanosToUSD(profile.CoinPriceBitCloutNanos, 2) }}

https://github.com/bitclout/frontend/blob/a752edf2ec9f3003664cbfb4192cccac5b0a8816/src/app/creator-profile-page/creator-profile-top-card/creator-profile-top-card.component.html#L109

When I run the calculation, I get $1.0907, which is clearly incorrect.

I even put together several permutations, and no luck. You can quickly test out my exact code in this StackBlitz project:

https://stackblitz.com/edit/angular-ivy-5nq93r?devtoolsheight=33&file=src/app/app.component.ts

All other nano conversions I have tried work properly (coins in circulation, timestamp, nano to bitclout).

Am I missing something??

Modal Image Issue

Images load at 1000px wide however the css for .modal-dialog is set to a max-width of 500px at the min-width:576px. Updating this to 50% would make the images ideal for non-mobile devices.

Modify InfiniteScroller to work with PostThreadComponent subscription

Followup to #245. Address the following todo in PostThreadComponent:

// TODO: Cleanup - Update InfiniteScroller class to de-duplicate this logic

We should either:
(a) Figure out how we might extend infinite-scroller.ts to handle how PostThreadComponent fetches data with subscribe
(b) Remove the TODO and leave PostThreadComponent as is

Approval required for every transaction 1 week after log in on Safari

We're having an issue on Safari desktop with approvalRequired on the React web app we're building:

Given that I'm using Safari
And I logged in 1 week ago with access level 4
When I attempt to buy a coin
Identity requires me to Approve Transaction
And it requires me to approve every single transaction following that
Despite the fact that the seed-hex-key in Cookies is now correctly updated to last another week (i.e. now to expire 2 weeks from when I originally logged in)

Deleting my local storage manually and re-logging in means I don't have to approve each transaction, at least for another week. Really we want users to be able to log into the web app once at access level 4 and only have to approve a transaction when absolutely necessary. I'm not sure if I'm missing something?

Implement Hashtags

I don't know programming Typescript etc, but will there be hashtags soon?

Starter Clout - Phone number validation issue.

There is a bug in the phone number registration process, very minor, but would affect people selecting "Isle of Man" the validation forces use of numbers starting 1624.
However, 1624 is a landline in the Isle of Man.

The mobile prefix should start with a 7 (e.g. 7624) instead - i believe there are now some additional codes for IOM Mobiles now too - would need to check with the telecom provider there.

I suspect this is an issue with the service though?

Hashtags?

Hi will there be hashtags and content search? I wanted to make a PR myself but I have no idea how to make search function and fontend.

Image processing artifacts on large images

Identity.jwt only returning {approvalRequired: true} and not JWT

When calling .jwt method of the identity service, it only returns {approvalRequired: true} and not the actual JWT.

Any ideas why this is happening? I am obviously developing on localhost. Does that have something to do with it?

I have tried numerous times but it never returns the JWT token, just the {approvalRequired: true} response.

Any help would be appreciated!

Frontend requires the core to point to api.hostname

The way the core url variable is configured it assumes it will always be api.{hostname}.

https://github.com/bitclout/frontend/blob/47b63826780a1ef9d2291f36605449cc6308d7e0/src/app/global-vars.service.ts#L608

This limits environment flexibility, and tightly couples the core with frontend. A backend service in a separate container should not be dependent on the frontend's configuration.

Some affected use cases:

  • Hosted test apps: These services generally don't allow custom urls and can be discouraging to new developers. This bug creates a larger barrier of entry for a new dev to spin up a node.
  • Sharing cores: If I have two sites (bitclout.com and bitclout.co.uk) then I also need to setup separate two core clusters? This seems redundant, and increases the cost to spin up additional nodes.

My suggestion is to move the core url to either the angular.json file or we use a .env file and possible import the dotenv package to this project. Not sure if angular inherently adds it to node modules.

Desaturating Dark Mode Colors

Reducing tonal values on dark theme surfaces to improve readability and reduce visual vibrations.

Suggestion:

#0257F6 to #6D8AFF
#FE3339 to #FF6E64
#13B029 to #83DE6F

Dark Mode Color

Notifications - please add date/time to all notifications (Feature request)

As per title - please add date/time to all notifications.

Because notifications don't always load up properly (e.g. node syncing) it is a pain to see which notifications are new, or when they were posted.

Surely it must be possible to get the date & time of all notifications to display on the notification panel.

Please consider - its my no 1 issue at the moment :)

Thanks guys.

p.s. Please don't take any of my posts as negatives, i'm just trying to help with constructive criticism and enhance the platform.

Not reloading feed

When I switch to another account it won't refresh/reload feed, I saw my previous account clouts. (I liked, reclouted, diamond) all show previous account details.

Dark Mode Dropdown Color Contrast

Currently, the dropdown is the same color as the background layer. The UI would benefit from increased contrast between overlayed layers and background layers (i.e. exposed dropdowns).

I'd like to request/suggest that the color for dropdown.menu either includes a brightness filter of 112% or an outright color change to #2E2E2E.

Additionally, including a drop shadow will also increase contrast. My suggestion is "box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.25);"

image

Deflation Bomb Clock Incorrect - running 18 hrs ahead

Deflation Bomb is block 33783
Current block is 33315
Leaves 468 blocks
Average time between blocks last 24 hours is just under 5 min
Target time is 5min

This suggests another 38 hours to go
But deflation countdown says 20

Im sure you know this and maybe have a plan.

Just thought i would flag it up

Problem Decoding Public Key

I'm trying to submit a signed transaction.

I have everything working up to the point of submitting the signed transaction to the backend after clicking "allow" on the approval window, and getting back the users object as well as the signedTransactionHex.

However, when I try to submit to the "submit-transaction" endpoint with the signed request, I keep getting the following error:

2021-05-14T00:30:00.151Z 71abea49-9d49-4fdc-836c-fa8e9b8194a9 INFO {
error: ': SubmitPost: Problem decoding public key : : CheckDecode: Invalid input format'

I have checked and re-checked and the public key input format seems fine. I am assuming this is the public key of the active user which is the "publicKeyAdded" property.

Any help would be appreciated. Thanks!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.