use plugin actions

pull/5370/head
yann300 7 months ago
parent eadd51f1ea
commit ae9ac30224
  1. 5
      libs/remix-ui/git/src/components/github/devicecode.tsx
  2. 12
      libs/remix-ui/git/src/components/gitui.tsx
  3. 7
      libs/remix-ui/git/src/components/panels/githubcredentials.tsx
  4. 8
      libs/remix-ui/git/src/components/panels/setup.tsx
  5. 8
      libs/remix-ui/git/src/lib/pluginActions.ts
  6. 2
      libs/remix-ui/git/src/state/context.tsx
  7. 2
      libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx

@ -4,9 +4,8 @@ import { gitPluginContext } from "../gitui";
import axios from "axios";
import { CopyToClipboard } from "@remix-ui/clipboard";
import { Card } from "react-bootstrap";
import { IGitUi } from '../../types'
export const GetDeviceCode = (props: IGitUi) => {
export const GetDeviceCode = () => {
const context = React.useContext(gitPluginContext)
const actions = React.useContext(gitActionsContext)
const pluginActions = React.useContext(pluginActionsContext)
@ -67,7 +66,7 @@ export const GetDeviceCode = (props: IGitUi) => {
setGitHubResponse(null)
await pluginActions.saveToken(null)
await actions.loadGitHubUserFromToken()
props.plugin.emit('disconnectFromGithub')
pluginActions.disconnectFromGithub()
}
return (

@ -1,7 +1,7 @@
import React, { useEffect, useReducer, useState } from 'react'
import { add, addall, checkout, checkoutfile, clone, commit, createBranch, remoteBranches, repositories, rm, getCommitChanges, diff, resolveRef, getBranchCommits, setUpstreamRemote, loadGitHubUserFromToken, getBranches, getRemotes, remoteCommits, saveGitHubCredentials, getGitHubCredentialsFromLocalStorage, fetch, pull, push, setDefaultRemote, addRemote, removeRemote, sendToGitLog, clearGitLog, getBranchDifferences, getFileStatusMatrix, init, showAlert, gitlog } from '../lib/gitactions'
import { loadFiles, setCallBacks } from '../lib/listeners'
import { openDiff, openFile, saveToken, setModifiedDecorator, setPlugin, setUntrackedDecorator, statusChanged } from '../lib/pluginActions'
import { openDiff, openFile, saveToken, setModifiedDecorator, setPlugin, setUntrackedDecorator, statusChanged, disconnectFromGithub, logInGitHub } from '../lib/pluginActions'
import { gitActionsContext, pluginActionsContext } from '../state/context'
import { gitReducer } from '../state/gitreducer'
import { defaultGitState, defaultLoaderState, gitState, loaderState } from '../types'
@ -154,7 +154,9 @@ export const GitUI = (props: IGitUi) => {
saveToken,
saveGitHubCredentials,
getGitHubCredentialsFromLocalStorage,
showAlert
showAlert,
disconnectFromGithub,
logInGitHub
}
return (
@ -166,16 +168,16 @@ export const GitUI = (props: IGitUi) => {
<pluginActionsContext.Provider value={pluginActionsProviderValue}>
<BranchHeader />
{setup ? <Setup plugin={plugin} ></Setup> : null}
{setup ? <Setup></Setup> : null}
{!setup && needsInit ? <Init></Init> : null}
{!setup && !needsInit ?
<Accordion activeKey={activePanel} defaultActiveKey="1">
<GitHubNavigation eventKey="0" activePanel={activePanel} callback={setActivePanel} />
<Accordion.Collapse className='bg-light' eventKey="0">
<>
<GetDeviceCode plugin={plugin}></GetDeviceCode>
<GetDeviceCode></GetDeviceCode>
<hr></hr>
<GitHubCredentials plugin={plugin}></GitHubCredentials>
<GitHubCredentials></GitHubCredentials>
</>
</Accordion.Collapse>
<hr></hr>

@ -5,9 +5,8 @@ import { CustomTooltip } from "@remix-ui/helper";
import { useIntl, FormattedMessage } from "react-intl";
import { CopyToClipboard } from "@remix-ui/clipboard";
import { IGitUi } from '../../types'
export const GitHubCredentials = (props: IGitUi) => {
export const GitHubCredentials = () => {
const context = React.useContext(gitPluginContext)
const pluginactions = React.useContext(pluginActionsContext)
const loader = React.useContext(loaderContext)
@ -53,7 +52,7 @@ export const GitHubCredentials = (props: IGitUi) => {
setGithubToken(credentials.token || '')
setGithubUsername(credentials.username || '')
setGithubEmail(credentials.email || '')
props.plugin.emit('loggedInGithubChanged')
pluginactions.logInGitHub()
}
function removeToken(): void {
@ -65,7 +64,7 @@ export const GitHubCredentials = (props: IGitUi) => {
email: '',
token: ''
})
props.plugin.emit('disconnectFromGithub')
pluginactions.disconnectFromGithub()
}
return (

@ -3,7 +3,7 @@ import { GetDeviceCode } from '../github/devicecode'
import { GitHubCredentials } from './githubcredentials'
import { IGitUi } from '../../types'
export const Setup = (props: IGitUi) => {
export const Setup = () => {
const [screen, setScreen] = useState(0)
@ -16,9 +16,9 @@ export const Setup = (props: IGitUi) => {
To ensure that your commits are properly attributed in Git, you need to configure a username and email address.
These will be used to identify the author of the commit.
</div>
<GetDeviceCode plugin={props.plugin}></GetDeviceCode>
<GetDeviceCode></GetDeviceCode>
<hr></hr>
<GitHubCredentials plugin={props.plugin}></GitHubCredentials>
<GitHubCredentials></GitHubCredentials>
</div>
</>
)
@ -29,7 +29,7 @@ export const Setup = (props: IGitUi) => {
<h6>Step 2</h6>
<div>
To ensure that your commits are properly attributed in Git, you need to configure your username and email address.
<GitHubCredentials plugin={props.plugin}></GitHubCredentials>
<GitHubCredentials></GitHubCredentials>
</div>
</>
)

@ -14,6 +14,14 @@ export const setPlugin = (p: Plugin<any, CustomRemixApi>, gitDispatcher: React.D
loaderDispatch = loaderDispatcher
}
export const disconnectFromGithub = () => {
plugin.emit('disconnectFromGithub')
}
export const logInGitHub = () => {
plugin.emit('loggedInGithubChanged')
}
export const statusChanged = (badges: number) => {
if (!plugin) return
plugin.emit('statusChanged', {

@ -54,6 +54,8 @@ export interface pluginActions {
token: string
}>
showAlert({ title, message }:{title: string, message: string}): Promise<void>
logInGitHub(): void
disconnectFromGithub(): void
}
export const pluginActionsContext = React.createContext<pluginActions>(null)

@ -92,7 +92,7 @@ export function Workspace() {
})
}
}
global.plugin.on('dgit', 'disconnectFromGithub', () => {
global.plugin.on('dgit', 'disconnectFromGithubRequest', () => {
setState((prevState) => {
return { ...prevState, loggedInGithub: false, githubUser: null }
})

Loading…
Cancel
Save