106 lines
2.4 KiB
JavaScript
106 lines
2.4 KiB
JavaScript
import * as types from "constants/action_types";
|
|
import lbry from "lbry";
|
|
import { doFetchClaimListMine } from "actions/content";
|
|
import {
|
|
selectClaimsByUri,
|
|
selectClaimListMineIsPending,
|
|
} from "selectors/claims";
|
|
import {
|
|
selectFileListIsPending,
|
|
selectAllFileInfos,
|
|
selectUrisLoading,
|
|
} from "selectors/file_info";
|
|
import { doCloseModal } from "actions/app";
|
|
|
|
const { shell } = require("electron");
|
|
|
|
export function doFetchFileInfo(uri) {
|
|
return function(dispatch, getState) {
|
|
const state = getState();
|
|
const claim = selectClaimsByUri(state)[uri];
|
|
const outpoint = claim ? `${claim.txid}:${claim.nout}` : null;
|
|
const alreadyFetching = !!selectUrisLoading(state)[uri];
|
|
|
|
if (!alreadyFetching) {
|
|
dispatch({
|
|
type: types.FETCH_FILE_INFO_STARTED,
|
|
data: {
|
|
outpoint,
|
|
},
|
|
});
|
|
|
|
lbry
|
|
.file_list({ outpoint: outpoint, full_status: true })
|
|
.then(fileInfos => {
|
|
dispatch({
|
|
type: types.FETCH_FILE_INFO_COMPLETED,
|
|
data: {
|
|
outpoint,
|
|
fileInfo: fileInfos && fileInfos.length ? fileInfos[0] : null,
|
|
},
|
|
});
|
|
});
|
|
}
|
|
};
|
|
}
|
|
|
|
export function doFileList() {
|
|
return function(dispatch, getState) {
|
|
const state = getState();
|
|
const isPending = selectFileListIsPending(state);
|
|
|
|
if (!isPending) {
|
|
dispatch({
|
|
type: types.FILE_LIST_STARTED,
|
|
});
|
|
|
|
lbry.file_list().then(fileInfos => {
|
|
dispatch({
|
|
type: types.FILE_LIST_COMPLETED,
|
|
data: {
|
|
fileInfos,
|
|
},
|
|
});
|
|
});
|
|
}
|
|
};
|
|
}
|
|
|
|
export function doOpenFileInShell(fileInfo) {
|
|
return function(dispatch, getState) {
|
|
shell.openItem(fileInfo.download_path);
|
|
};
|
|
}
|
|
|
|
export function doOpenFileInFolder(fileInfo) {
|
|
return function(dispatch, getState) {
|
|
shell.showItemInFolder(fileInfo.download_path);
|
|
};
|
|
}
|
|
|
|
export function doDeleteFile(outpoint, deleteFromComputer) {
|
|
return function(dispatch, getState) {
|
|
dispatch({
|
|
type: types.FILE_DELETE,
|
|
data: {
|
|
outpoint,
|
|
},
|
|
});
|
|
|
|
lbry.file_delete({
|
|
outpoint: outpoint,
|
|
delete_target_file: deleteFromComputer,
|
|
});
|
|
|
|
dispatch(doCloseModal());
|
|
};
|
|
}
|
|
|
|
export function doFetchFileInfosAndPublishedClaims() {
|
|
return function(dispatch, getState) {
|
|
const state = getState();
|
|
|
|
dispatch(doFetchClaimListMine());
|
|
dispatch(doFileList());
|
|
};
|
|
}
|