|
|
|
|
import QueryString from 'qs';
|
|
|
|
|
import classNames from 'classnames';
|
|
|
|
|
|
|
|
|
|
// This file provides helpers for the Style Guide, exposed at 'util' in the global scope
|
|
|
|
|
// via the 'context' option in react-styleguidist.
|
|
|
|
|
|
|
|
|
|
import { default as _ } from 'lodash';
|
|
|
|
|
export { ConversationContext } from './ConversationContext';
|
|
|
|
|
export { LeftPaneContext } from './LeftPaneContext';
|
|
|
|
|
|
|
|
|
|
export { _, classNames };
|
|
|
|
|
|
|
|
|
|
// TypeScript wants two things when you import:
|
|
|
|
|
// 1) a normal typescript file
|
|
|
|
|
// 2) a javascript file with type definitions
|
|
|
|
|
// Anything else will raise an error, that it can't find the module. And so, we ignore...
|
|
|
|
|
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import gif from '../../fixtures/giphy-GVNvOUpeYmI7e.gif';
|
|
|
|
|
// 320x240
|
|
|
|
|
const gifObjectUrl = makeObjectUrl(gif, 'image/gif');
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import mp3 from '../../fixtures/incompetech-com-Agnus-Dei-X.mp3';
|
|
|
|
|
const mp3ObjectUrl = makeObjectUrl(mp3, 'audio/mp3');
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import txt from '../../fixtures/lorem-ipsum.txt';
|
|
|
|
|
const txtObjectUrl = makeObjectUrl(txt, 'text/plain');
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import mp4 from '../../fixtures/pixabay-Soap-Bubble-7141.mp4';
|
|
|
|
|
const mp4ObjectUrl = makeObjectUrl(mp4, 'video/mp4');
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import mp4v2 from '../../fixtures/ghost-kitty.mp4';
|
|
|
|
|
const mp4ObjectUrlV2 = makeObjectUrl(mp4v2, 'video/mp4');
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import png from '../../fixtures/freepngs-2cd43b_bed7d1327e88454487397574d87b64dc_mv2.png';
|
|
|
|
|
// 800×1200
|
|
|
|
|
const pngObjectUrl = makeObjectUrl(png, 'image/png');
|
|
|
|
|
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import landscape from '../../fixtures/koushik-chowdavarapu-105425-unsplash.jpg';
|
|
|
|
|
// 800×1200
|
|
|
|
|
const landscapeObjectUrl = makeObjectUrl(landscape, 'image/png');
|
|
|
|
|
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import landscapeGreen from '../../fixtures/1000x50-green.jpeg';
|
|
|
|
|
const landscapeGreenObjectUrl = makeObjectUrl(landscapeGreen, 'image/jpeg');
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import landscapePurple from '../../fixtures/200x50-purple.png';
|
|
|
|
|
const landscapePurpleObjectUrl = makeObjectUrl(landscapePurple, 'image/png');
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import portraitYellow from '../../fixtures/20x200-yellow.png';
|
|
|
|
|
const portraitYellowObjectUrl = makeObjectUrl(portraitYellow, 'image/png');
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import landscapeRed from '../../fixtures/300x1-red.jpeg';
|
|
|
|
|
const landscapeRedObjectUrl = makeObjectUrl(landscapeRed, 'image/png');
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import portraitTeal from '../../fixtures/50x1000-teal.jpeg';
|
|
|
|
|
const portraitTealObjectUrl = makeObjectUrl(portraitTeal, 'image/png');
|
|
|
|
|
|
|
|
|
|
function makeObjectUrl(data: ArrayBuffer, contentType: string): string {
|
|
|
|
|
const blob = new Blob([data], {
|
|
|
|
|
type: contentType,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return URL.createObjectURL(blob);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export {
|
|
|
|
|
mp3,
|
|
|
|
|
mp3ObjectUrl,
|
|
|
|
|
gif,
|
|
|
|
|
gifObjectUrl,
|
|
|
|
|
mp4,
|
|
|
|
|
mp4ObjectUrl,
|
|
|
|
|
mp4v2,
|
|
|
|
|
mp4ObjectUrlV2,
|
|
|
|
|
png,
|
|
|
|
|
pngObjectUrl,
|
|
|
|
|
txt,
|
|
|
|
|
txtObjectUrl,
|
|
|
|
|
landscape,
|
|
|
|
|
landscapeObjectUrl,
|
|
|
|
|
landscapeGreen,
|
|
|
|
|
landscapeGreenObjectUrl,
|
|
|
|
|
landscapePurple,
|
|
|
|
|
landscapePurpleObjectUrl,
|
|
|
|
|
portraitYellow,
|
|
|
|
|
portraitYellowObjectUrl,
|
|
|
|
|
landscapeRed,
|
|
|
|
|
landscapeRedObjectUrl,
|
|
|
|
|
portraitTeal,
|
|
|
|
|
portraitTealObjectUrl,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const query = window.location.search.replace(/^\?/, '');
|
|
|
|
|
const urlOptions = QueryString.parse(query);
|
|
|
|
|
const theme = urlOptions.theme || 'light-theme';
|
|
|
|
|
const ios = urlOptions.ios || false;
|
|
|
|
|
const locale = urlOptions.locale || 'en';
|
|
|
|
|
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import localeMessages from '../../_locales/en/messages.json';
|
|
|
|
|
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
import { setup } from '../../js/modules/i18n';
|
|
|
|
|
const i18n = setup(locale, localeMessages);
|
|
|
|
|
|
|
|
|
|
export { theme, ios, locale, i18n };
|
|
|
|
|
|
|
|
|
|
// Telling Lodash to relinquish _ for use by underscore
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
_.noConflict();
|
|
|
|
|
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
window.log = {
|
Session v1.0 changes (#802)
* correct typo in readme
* include log
* decrypt file server response, remove debug, handle crypt before _sendToProxy, improve json parsing failure logging
* support file uploads on file proxy, fix _sendToProxy calling
* bump form-data to 3.0
* initial refactor of feaure flag detection statements in serverRequest()
* fix send-message line-height with multiple lines
* fix lint
* fix position of delete account modal
* Profile picture upload, fixes and copy
* Various changes suggested by redesign overview
* Scrolling button updated and animations to modals
* Display subscriber count for open chats
* Prevent illegal username and passwords
* Delete channel / group merge
* Solidification of minor changes w appview injections
* hide description field in group panel for now
* fix join publicgroups pulls
* increase min height respecting ratio
* allow space inside a display name but not at start or end
* fix height of leftpane overlay view
* add back typing indicator and read receipt setting under privacy
* Auto-focus new open chat input box
* Password lock screen and delete data screen
* touchups
* Resolving Bilb revisions
* Disable link previews as default per Kee on signup
* remove date, we have git
* add missing semicolon
* _sendToProxy pass headers/handle response refactor, lint
* fix my yarn conflict/resolve
* include IV in server response
* Sealed sender support
* Support sealed sender for friend requests
* fix lint
* Remove unused destinationRegistrationId; lint
* Update messages.json
* pull RSS through file proxy
* fix unit tests: remove not used count in scrolldown view and assert svg
present
* Disable auto-joining default loki open groups
* session-id-editable-textarea
* fix the textscramble for sessionID on registration
* speed up lint, add lint-full/format-full, make sure use lint-full
* add skipToken to establishConnection options, smuggle out secureRpcPubKey
* get latest version through snode proxy, remove clearfix from ExpiredAlertBanner
* expose semver and LokiAppDotNetServerAPI because we can't get ourKey from storage early enough
* update note
* fix upgrade link, wrap expiredWarning in span for styling, use br to clear the float, trim trailing whitespace
* designalify
* designalify
* designalify user agent
* continue designalification
* make expired banner legible
* remove ugly TLS hack
* disable unauthorization rejection when making https requests limited to lokiRpc
* Update main.js
Aspect ratio amendment
* Constants rework
* local commit
* event listeners
* address missing comma for lint
* fix header sessions message section
* fix profile image size conversation list with pending friend request
* textarea centering
* refresh files in group in group panel
* Looking into keyboard navigation
* Remove P2P
* cache eslint on `lint` but not `ready`
* Cleanup media view formatting
* force locale to be EN until our files are updated and translated
* Simplification of keyup
* Updated all icon references
* SASS fixup
* fix disabled state of message input on sent friendrequest
* trim pubkey when user can enter one to remove whitespaces
* remove lZ in path which fixes errors on svg and does not alter rendering
* fix text scramble animation on registration
* reload app on ctrl-r or f5 from anywhere
* add back file which should have not been deleted
* fix lint and clean code
* fix lint
* add .loki to have a self-signed cert
* Remove mixpanel
* use local shortcut instead of global shortcut
otherwise, ctrl+r is only caught bu the last loaded instance
* open the conversation when accepting a friend request
also, it does what is needed to show the new friend in the friend list
* make sure token comms are done over fileProxy, other notes, logging adjustment
* leftpane sections titles are Wasa bold
* minor refactor
* onboarding messageview
* linter
* fix padding buttons overlay
* do not render session-id-editable border when textarea disabled
* textarea sessionID SpaceMono font
* various touchups
* fix font of description to sfprodisplay
* reduce triple dots conversation header icon size
* reduce size of conversationHeader title font size
* fix font for session-search-input
* make conversationlistitem title font wasa
* fix green and white border under title in leftpane
* fix panel-text-divider font-size and family
* disable completely borders for profile images
* make profile image which where 48pixels big 36 noew, as no more border
* Complete conditional message onboarding
* cache file deletions
* Link preview warning on setting toggle
* Messages.json amendments
* Join channel generalisation
* Localise global vars
* remove eslintcache
* rm global launchcount
* Remove source field from envelope
* Session public chat icon
* CLosed groups ui initial listprops
* Desktop: enable useSnodeProxy feature flag
* file proxy needs to be able to talk to snode
- disable TLS check for fileProxy
- lokiHttpsAgent => snodeHttpsAgent (since we use for two different things now)
* enable useSealedSender too per Maxim
* lint
* lint
* window.extension.expiredPromise version
* better error checking
* use promise version to see if we're expired
* fix typo
* lint
* put back seemingly now required process.env.NODE_TLS_REJECT_UNAUTHORIZED
* fix querystring in file-proxy
* lint
* fix typo
* Remove more references to signal.org
* make sure TLS is forced on open groups, improve serverRequest error message
* Closed groups UI
* function params changes
* turn off snode proxy logging
* include useful info on error
* actually validate URL before starting up a bunch of timers
* Closed groups overlay integration
* move comments from connecting_to_server_dialog_view
* use attempt from window object to reduce code duplication
* refactor out validServer()
* lint
* lint caught typo
* Rename BACKGROUND_FRIEND_REQUEST to SESSION_REQUEST.
Don't trigger friend request logic if a message is aimed at a group.
* Linting
* Closed group joining completed w/o backend
* Fix friend request messages being sent to users you don't have a session in closed groups.
Disable typing messages and read receipts in groups.
Send out session request messages if you don't have a session with a member in the group.
* Remove unneeded boolean condition.
* Closed group update message stylgin
* constants renaming
* Message deletion fix
* gruntify
* fix grunt error
* expose isRss, don't close uncloseable Rss conversation on deleteMessages
* remove copyId and block user on RSS feeds
* remove options from RSS feed that don't make any sense and don't work
* fix grunt error
* squelch RSS duplicate messages
* extension.expiredStatus(), adjustable timers, improve guards
* allowing sending of messages if we're still waiting to hear back
* markRandomNodeUnreachable() refactor, notes/logging
* improve logging
* improve logging
* no need to validate empty token, support lokinet/getession file domains, mark broken snodes as bad, improve logging
* try to address travis-osx lint complaints
* not designed to have a period at the end of titleIsNow
* put period back at the end
* Catch a stray loki messenger
* fix stray loki messenger
* loki messenger isnt a thing
* lint
* Fix open group joining.
* guards incase there are no members yet, fixes dialog not showing up
* fixed file server holding up message sender init.
fix joining closed groups.
* Clean
* Don't wait for file server to return tokens when establishing home connection.
* Disable join public chat prompt
Co-authored-by: Audric Ackermann <audric.bilb@gmail.com>
Co-authored-by: Ryan Tharp <neuro@interx.net>
Co-authored-by: Vince <vincent@loki.network>
Co-authored-by: Maxim Shishmarev <msgmaxim@gmail.com>
5 years ago
|
|
|
|
// tslint:disable-next-line no-console
|
|
|
|
|
info: console.log,
|
Session v1.0 changes (#802)
* correct typo in readme
* include log
* decrypt file server response, remove debug, handle crypt before _sendToProxy, improve json parsing failure logging
* support file uploads on file proxy, fix _sendToProxy calling
* bump form-data to 3.0
* initial refactor of feaure flag detection statements in serverRequest()
* fix send-message line-height with multiple lines
* fix lint
* fix position of delete account modal
* Profile picture upload, fixes and copy
* Various changes suggested by redesign overview
* Scrolling button updated and animations to modals
* Display subscriber count for open chats
* Prevent illegal username and passwords
* Delete channel / group merge
* Solidification of minor changes w appview injections
* hide description field in group panel for now
* fix join publicgroups pulls
* increase min height respecting ratio
* allow space inside a display name but not at start or end
* fix height of leftpane overlay view
* add back typing indicator and read receipt setting under privacy
* Auto-focus new open chat input box
* Password lock screen and delete data screen
* touchups
* Resolving Bilb revisions
* Disable link previews as default per Kee on signup
* remove date, we have git
* add missing semicolon
* _sendToProxy pass headers/handle response refactor, lint
* fix my yarn conflict/resolve
* include IV in server response
* Sealed sender support
* Support sealed sender for friend requests
* fix lint
* Remove unused destinationRegistrationId; lint
* Update messages.json
* pull RSS through file proxy
* fix unit tests: remove not used count in scrolldown view and assert svg
present
* Disable auto-joining default loki open groups
* session-id-editable-textarea
* fix the textscramble for sessionID on registration
* speed up lint, add lint-full/format-full, make sure use lint-full
* add skipToken to establishConnection options, smuggle out secureRpcPubKey
* get latest version through snode proxy, remove clearfix from ExpiredAlertBanner
* expose semver and LokiAppDotNetServerAPI because we can't get ourKey from storage early enough
* update note
* fix upgrade link, wrap expiredWarning in span for styling, use br to clear the float, trim trailing whitespace
* designalify
* designalify
* designalify user agent
* continue designalification
* make expired banner legible
* remove ugly TLS hack
* disable unauthorization rejection when making https requests limited to lokiRpc
* Update main.js
Aspect ratio amendment
* Constants rework
* local commit
* event listeners
* address missing comma for lint
* fix header sessions message section
* fix profile image size conversation list with pending friend request
* textarea centering
* refresh files in group in group panel
* Looking into keyboard navigation
* Remove P2P
* cache eslint on `lint` but not `ready`
* Cleanup media view formatting
* force locale to be EN until our files are updated and translated
* Simplification of keyup
* Updated all icon references
* SASS fixup
* fix disabled state of message input on sent friendrequest
* trim pubkey when user can enter one to remove whitespaces
* remove lZ in path which fixes errors on svg and does not alter rendering
* fix text scramble animation on registration
* reload app on ctrl-r or f5 from anywhere
* add back file which should have not been deleted
* fix lint and clean code
* fix lint
* add .loki to have a self-signed cert
* Remove mixpanel
* use local shortcut instead of global shortcut
otherwise, ctrl+r is only caught bu the last loaded instance
* open the conversation when accepting a friend request
also, it does what is needed to show the new friend in the friend list
* make sure token comms are done over fileProxy, other notes, logging adjustment
* leftpane sections titles are Wasa bold
* minor refactor
* onboarding messageview
* linter
* fix padding buttons overlay
* do not render session-id-editable border when textarea disabled
* textarea sessionID SpaceMono font
* various touchups
* fix font of description to sfprodisplay
* reduce triple dots conversation header icon size
* reduce size of conversationHeader title font size
* fix font for session-search-input
* make conversationlistitem title font wasa
* fix green and white border under title in leftpane
* fix panel-text-divider font-size and family
* disable completely borders for profile images
* make profile image which where 48pixels big 36 noew, as no more border
* Complete conditional message onboarding
* cache file deletions
* Link preview warning on setting toggle
* Messages.json amendments
* Join channel generalisation
* Localise global vars
* remove eslintcache
* rm global launchcount
* Remove source field from envelope
* Session public chat icon
* CLosed groups ui initial listprops
* Desktop: enable useSnodeProxy feature flag
* file proxy needs to be able to talk to snode
- disable TLS check for fileProxy
- lokiHttpsAgent => snodeHttpsAgent (since we use for two different things now)
* enable useSealedSender too per Maxim
* lint
* lint
* window.extension.expiredPromise version
* better error checking
* use promise version to see if we're expired
* fix typo
* lint
* put back seemingly now required process.env.NODE_TLS_REJECT_UNAUTHORIZED
* fix querystring in file-proxy
* lint
* fix typo
* Remove more references to signal.org
* make sure TLS is forced on open groups, improve serverRequest error message
* Closed groups UI
* function params changes
* turn off snode proxy logging
* include useful info on error
* actually validate URL before starting up a bunch of timers
* Closed groups overlay integration
* move comments from connecting_to_server_dialog_view
* use attempt from window object to reduce code duplication
* refactor out validServer()
* lint
* lint caught typo
* Rename BACKGROUND_FRIEND_REQUEST to SESSION_REQUEST.
Don't trigger friend request logic if a message is aimed at a group.
* Linting
* Closed group joining completed w/o backend
* Fix friend request messages being sent to users you don't have a session in closed groups.
Disable typing messages and read receipts in groups.
Send out session request messages if you don't have a session with a member in the group.
* Remove unneeded boolean condition.
* Closed group update message stylgin
* constants renaming
* Message deletion fix
* gruntify
* fix grunt error
* expose isRss, don't close uncloseable Rss conversation on deleteMessages
* remove copyId and block user on RSS feeds
* remove options from RSS feed that don't make any sense and don't work
* fix grunt error
* squelch RSS duplicate messages
* extension.expiredStatus(), adjustable timers, improve guards
* allowing sending of messages if we're still waiting to hear back
* markRandomNodeUnreachable() refactor, notes/logging
* improve logging
* improve logging
* no need to validate empty token, support lokinet/getession file domains, mark broken snodes as bad, improve logging
* try to address travis-osx lint complaints
* not designed to have a period at the end of titleIsNow
* put period back at the end
* Catch a stray loki messenger
* fix stray loki messenger
* loki messenger isnt a thing
* lint
* Fix open group joining.
* guards incase there are no members yet, fixes dialog not showing up
* fixed file server holding up message sender init.
fix joining closed groups.
* Clean
* Don't wait for file server to return tokens when establishing home connection.
* Disable join public chat prompt
Co-authored-by: Audric Ackermann <audric.bilb@gmail.com>
Co-authored-by: Ryan Tharp <neuro@interx.net>
Co-authored-by: Vince <vincent@loki.network>
Co-authored-by: Maxim Shishmarev <msgmaxim@gmail.com>
5 years ago
|
|
|
|
// tslint:disable-next-line no-console
|
|
|
|
|
error: console.error,
|
|
|
|
|
// tslint:disable-next-line no-console
|
|
|
|
|
warn: console.warn,
|
|
|
|
|
};
|